정렬
` 정렬해 보았다.
람다식
Arrays.sort는 2차원 배열은 정렬할 수 없다.
이를 람다식을 이용해 해결할 수 있다.
예시로 좌표 정렬하기를 풀어보았고 아래는 정렬 부분 코드이다.
1
2
3
4
5
6
|
Arrays.sort(arr1, (e1, e2) ->{
if(e1[0]==e2[0])
return e1[1] - e2[1];
else
return e1[0] - e2[0];
});
|
다음은 단어 정렬에 사용한 코드이다.
1
2
3
4
5
6
7
8
9
|
Arrays.sort(arr1, new Comparator<String>() {
public int compare(String s1, String s2) {
if (s1.length() == s2.length()) {
return s1.compareTo(s2);
} else {
return s1.length() - s2.length();
}
}
});
|
Comparator 에서 에 있는 것은 상속관계에 있는 타입까지 허용한다는 뜻인데 여기서는 T자체만 봐도 상관없다.
또한 method를 정의하여 사용할 수 있다.
이렇게 람다식을 사용해 간결한 표현을 할 수 있다.
python의 lambda와 함수와 비슷하여 어떻게 돌아가는 이해는 했으나 사용방식이 익숙치 않아 좀 더 연습해봐야 할 것 같다.