java.util.Arrays 유틸리티 클래스를 사용하면 배열(Array)을 정렬, 복제하거나 List로 변환하는 등의 작업을 쉽게 처리할 수 있다. 해당 클래스의 sort() 매서드를 사용하면 쉽게 오름차순 정렬리 가능하다. sort()매서드는 클래스 매서드로써 Arrays 클래스의 인스턴스 생성없이 바로 사용하면 된다.

 

기본 정렬조건이 오름차순인 이유는 Class 내에 기본적으로 구현되어있는 Comparable 인터페이스의 compareTo 메서드를 기준으로 하기 때문이다. Java에서 인스턴스를 서로 비교하는 클래스들은 모두 Comparable 인터페이스가 구현되어 있다.

ex) A.compareTO(B)
   A==B // 같으면 0 반환
   A>B // A가 더 크면 1 반환
   A<B // B가 더 크면 -1 반환

 

Arrays.sort() 사용

int[] intarr = new int[] {1, 5, 4, 2, 3};

Arrays.sort(intarr); // 1 2 3 4 5

Arrays.sort(intarr,2,5); // intarr[2]~intarr[4]의값 4,2,3 만 정렬 : 1 5 2 3 4

 

내림차순이나 원하는대로 조건을 달리하고 싶을 때에는 Class내에 구현되어있는

1. Comparable 인터페이스의 compareTo() 메서드를 원하는 조건으로 오버라이드하거나,

2. 익명인터페이스 java.util.Comparator를 구현한 Class내 compare() 메서드를 원하는 정렬조건으로 오버라이드하여

sort 메서드 호출 시 구현한 Comparator 클래스를 명시해주면 된다.

 

주의할 점은 byte, char, double, short, long, int, float같은 PrimitiveType의 배열에는 적용이 불가능하니 Integer같은 Wrapper "Class"를 이용하셔야 한다는 점!!

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Custom implements Comparator<Player> {
    @Override
    public int compare(Player o1, Player o2) {
        // TODO Auto-generated method stub
        if(o1.score < o2.score) {
            return 1;
        }
        else if(o1.score == o2.score) {
            if((o1.name).compareTo(o2.name) < 0) {
                return -1;
            }
            else if((o1.name).compareTo(o2.name) > 0) {
                return 1;
            }
            else return 0;
        }
        return -1;
    }
}
class Player{
    String name;
    int score;
    
    Player(String name, int score){
        this.name = name;
        this.score = score;
    }
}
cs

위 예제는 score 내림차순으로 정렬하되, score값이 같으면 name 오름차순으로 정렬하도록 compare 메서드를 커스터마이징한 것이다.

 

1
2
3
4
5
6
class Custom implements Comparator<String> {
    @Override
    public int compare(String o1, String o2) {
        return o2.compareTo(o1);
    }
}
cs

위 예제는 내림차순으로 정렬하도록 구현한 것이다.

사용할때에는

1
2
String arr = new String[] {"A","B","C","D","E"};
Arrays.sort(arr, new Custom);
cs

이런식으로 사용하면 E D C B A 순으로 정렬된다.

 

***출처***

https://ifuwanna.tistory.com/232

spring을 사용하여 프로젝트를 진행하는 와중에, 메이븐을 사용한다고 하고있었는데..

메이븐이 뭔지 잘 알지도 못하면서 사용하고 있었다는걸 알았다..!

메이븐에 대해 찾아보면서 빌드, 컴파일 등에 대해서도 추상적인 느낌만 알고있었다는걸 또 깨닫고

이것들에 대해 정리해보는 글을 작성해본다.

사실 이렇게 작성해도 설명하라면 못할거같다ㅠ열심히 공부해서 개발길만 걷자..,,


메이븐에 대해 알아보기 전에!

컴파일과 빌드가 무엇인지, 그 차이점이 무엇인지 먼저 정리해보자.

 

컴파일(Compile)

컴파일이란 개발자가 작성한 코드를 바이너리 코드로 변환하는것을 말한다. (흔히 알고있는 목적파일이 생성됨)

즉, 우리말로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 바꾸는 것이다.

이러한 작업을 해주는것이 컴파일러(Compiler)이다.

자바의 경우, 자바 가상머신(JVM)에서 실행 가능한 바이트코드 형태의 클래스 파일이 생성된다.

 

빌드(Build)

소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 과정을 말한다.

빌드의 단계중에 컴파일이 포함되어 있는데, 컴파일은 빌드의 부분집합이라고 할 수 있다.

 

빌드 툴(Build Tool)

빌드 과정을 도와주는 도구이다.

전처리(Preprocessing), 컴파일(Compile), 패키징(Packaging), 테스팅(Testing), 배포(Destribution) 의 기능을 한다.

Ant, Maven, Gradle 등이 있다.


이제 빌드 툴의 한 종류인 메이븐에 대해 정리해보자.

 

메이븐이란?

자바 프로젝트의 빌드를 자동화해주는 빌드 툴이다.

즉, 자바 코드를 컴파일해서 패키징 후 디플로이를 자동화해주는 것이다.

 

pom.xml

자바 프로젝트에 빌드 툴을 maven으로 설정하였다면, pom.xml 파일이 생성되었을 것이다.

pom.xml은 POM(Project Object Model)을 설정하는 것으로, 프로젝트 내 빌드 옵션을 설정하는 부분이다.

꼭 pom.xml이라는 이름으로 해야할 필요는 없지만 암묵적인 원칙이기 때문에 pom.xml 이름을 사용하는 것이 좋다.

다른 파일로도 지정할 수 있다. (mvn -f [지정할파일.xml] test)

 

pom.xml 분석

업데이트 예정----

 

 

 

 

 

출처

https://freezboi.tistory.com/39

 

컴파일과 빌드 차이점

평소 이클립스와 같은 IDE를 사용하기 때문에 컴파일과 빌드의 개념에 대해 잘 알지 못했다. 단지 소스코드를 작성하고 이클립스에서 run을 실행하면 알아서 모든 과정이 자동으로 실행되기 때문이다. 그래서 컴파..

freezboi.tistory.com

https://jeong-pro.tistory.com/168

 

메이븐(Maven)은 알고 스프링(Spring)을 쓰는가? (pom.xml 분석하며 가볍게 정리하는 빌드 툴, Maven)

메이븐(Maven)은 알고 스프링(Spring)을 쓰는가? 제목과 같은 질문에 필자는 제대로 답변할 수 없었다. 단순하게는 maven repository에서 dependency 추가해서 필요한 라이브러리 쓰는 정도? 무엇을 위해 쓰는지,..

jeong-pro.tistory.com

'spring framework' 카테고리의 다른 글

[EL/JSTL]JSTL이란?  (0) 2018.06.20
[EL/JSTL]EL이란?  (0) 2018.06.19
[spring]spring framework 개념  (0) 2018.06.18

출처 - https://www.youtube.com/watch?v=WhX55LDST7g


- index.aspx

1
2
3
4
5
6
7
8
// 순수 HTML 사용해서 버튼 만들기
<input type="button" value="버튼1" id="btn1"/>
 
// runat 속성을 추가해서 서버 컨트롤 버튼 만들기
<input type="button" value="버튼2" id="btn2" runat="server"/>
 
// asp.net 표준 컨트롤을 사용해서 버튼 만들기
<asp:Button Text="버튼3" ID="btn3" runat="server"/>
cs



- index.aspx.cs (코드 비하인드)

1
2
3
4
5
protected void Page_Load(object sender, EventArgs e)
{
    btn2.Value    = "버튼2";
    btn3.Text    = "버튼3-표준 컨트롤";
}
cs

이런 식으로 접근하여 버튼의 내용을 바꿀 수 있다.






'asp.net(C#)' 카테고리의 다른 글

[asp.net]기본 페이지 설정( default page)  (0) 2018.08.13
[asp.net]Page_Load 함수  (0) 2018.08.03
[asp.net]페이지 include  (0) 2018.08.03
[asp.net]마스터 페이지(MS공식 설명서참고)  (0) 2018.08.03
[C#]기본 문법  (0) 2018.07.30

+ Recent posts