본문 바로가기

Programming Practice/Java

Data Collection sort

1. 언제 필요한가?

기본적으로 Data Collection에 담을 데이터를 가져올 때 sort를 해서 가져올 수 있다면, Data Collection 에서 sort를 할 필요가 없다. 예를 들어 DB 에서 조회한 데이터를 Data Collection에 담을 때는 DB를 조회하는 쿼리 내에서 order by를 통해 sort를 하기 때문에 java 에서 sort를 해서 담을 필요가 없다. 

그러나 특정 디렉토리 내 파일들의 정보를 가져오는 경우와 같이 데이터를 가져올 때 sort를 해서 가져올 수 없다면 Data Collection 의 sort 기능을 활용해야 한다. 

특정 디렉토리 내 파일들을 마지막으로 변경된 날짜 순으로 파일 정보를 보여주고 싶을 때 Data Collection 에서 sort를 해야 한다.


2. 어떻게 하는가?

기본적으로 2가지 방법이 있다.

1) TreeSet

: ArrayList 와 사용방법이 유사하나, ArrayList와 달리 담겨지는 항목들이 오름차순으로 정렬되고, 중복되는 항목은 제거된다.

: <단점>

  1) 오름차순으로만 정렬된다.

  2) 다양한 variable을 가지는 reference 변수(ex. MVC 모델에서 entity) 에 대해서는 적용할 수 없다.


2) Collections.sort() 

: ArrayList 에서 Entity를 담고, Entity의 variable 중 하나를 기준으로 해당 variable의 오름차순, 혹은 내림차순으로 정렬을 할 수 있다.

: <방법>

 1) Entity class 에 아래와 같이 설정한다.

 2) ArrayList<EntityClass명> 에 Entity를 담는다.

 3) Collections.sort(ArrayList명)을 호출한다.