정렬, 람다식

정렬

` 정렬해 보았다.


람다식

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와 함수와 비슷하여 어떻게 돌아가는 이해는 했으나 사용방식이 익숙치 않아 좀 더 연습해봐야 할 것 같다.

updatedupdated2021-03-012021-03-01
Load Comments?