Programing/JAVA

Java List<?> 정렬, 다중조건정렬, 오름, 내림차순 Comparator

리커니 2023. 1. 25. 10:38
반응형

java.util.Comparator<T> 를 사용하여 List 를 정렬하는 방법을 알아보도록 하겠습니다.

아래와 같은 VO Class가 있습니다.

 

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class signalVO{
	private String link_id;
	private String signal_id;
	private int dir;
	private String intersec_no;
	private String result;
}

 

1. 단일조건 정렬 (오름차순)

위 VO를 link_id로 정렬한다고 하면 아래와 같이 활용합니다.

 

ArrayList<SignalVO> list = new ArrayList<SignalVO>();
...값 입력

/*단일 정렬 (오름차순)*/
list.sort(Comparator.comparing(SignalVO::getLink_id);

 

2. 단일조건 정렬(내림차순)

reversed 메소드를 활용합니다.

 

ArrayList<SignalVO> list = new ArrayList<SignalVO>();
...값 입력

/*단일 정렬 (내림차순)*/
list.sort(Comparator.comparing(SignalVO::getLink_id).reversed();

 

3. 다중조건 정렬

thenComparing 메소드를 활용합니다.

ArrayList<SignalVO> list = new ArrayList<SignalVO>();
...값 입력

/*다중 정렬*/
list.sort(Comparator.comparing(SignalVO::getLink_id).reversed()
	thenComparing(SignalVO::getIntersec_no));

이처럼 다중조건 정렬의 경우 thenComparing 메소드로 연결하여 사용하시면 됩니다.

 

반응형