자바 Class 타입 정렬 방법

Posted by Breeze24
2016. 6. 4. 23:48 Java
자바 Class 타입 정렬 방법


이름, 아이디, 이메일 등의 정보가 들어 있는 구조체로 되어 있는 Class 같은 경우를 정렬하기 위해서는 Collection.sort()메소드와 Comparator를 사용하면 쉽게 정렬할 수있다. 

 



package com.test;

import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test {
	public static void main(String[] args) {
		
		Item item1 = null;
		Item item2 = null;
		Item item3 = null;
		Item item4 = null;
		List list = new ArrayList();
		
		item1 = new Item();
		item1.setId("id123");
		item1.setName("홍길동");
		item1.setEmail("aaa@aaa.com");
		list.add(item1);
		
		item2 = new Item();
		item2.setId("id345");
		item2.setName("장금이");
		item2.setEmail("ssa@ba.com");
		list.add(item2);
		
		item3 = new Item();
		item3.setId("id678");
		item3.setName("홍순이");
		item3.setEmail("dwd@1234.com");
		list.add(item3);
		
		item4 = new Item();
		item4.setId("id143");
		item4.setName("똘똘이");
		item4.setEmail("a1@uuu.com");
		list.add(item4);
		
		  
		final Comparator comparator = new Comparator(){
			@Override
			public int compare(Item o1, Item o2) {
				return Collator.getInstance().compare(o1.getId(), o2.getId());
			}
		};
		
		Collections.sort(list, comparator); 
		Item item = null;
		for (int i = 0; i < list.size(); i++) {
			item = list.get(i);
			System.out.println(item.getId()+" - "+item.getName()+" - "+item.getEmail()+" - ");
		}
	}
}


--------------------------------------------------------------------------------------------



실행결과





id로 정렬된 것을 볼 수 있다. 


이메일, 이름으로 정렬을 하기 위해서는 

return Collator.getInstance().compare(o1.getId(), o2.getId()); 

이 부분을 mail, name으로 변경하면 원하는 컬럼으로 정렬을 할 수 있다. 


역 정렬을 하기 위해서는 Collections.sort 대신에 Collections.reverse를 사용한다. 

.

'Java' 카테고리의 다른 글

GCViewer 설정  (0) 2016.06.04
Jdk 1.4 다운로드  (0) 2016.06.04
No buffer space available (maximum connections reached?): JVM_Bind  (0) 2016.06.04
자바 GC 분석  (0) 2016.06.04
자바 하위버전 다운로드 방법  (0) 2016.06.04