기술참고자료/JAVA
List Sort Sample Using Comparator<T> Interface
농사꾼봉팔
2011. 3. 17. 19:28
어떠한 문자열, 또는 수치값등을 List 형태의 객체 담아 정렬하는 기법이다.
첨부된 예제에서는 ArrayList를 사용하였고, String 형 객체에 담긴 문자열을 ArrayList에 담아
중복문자 및 공백문자를 제거하여, 오름차순으로 정렬하는 코드를 구현하였다.
주요메서드는 다음과 같다.
조금 더 자세한 내용은 검색을 통해 스스로 찾길 바란다.
[중복문자 제거 메서드(MyUtil.java)]
public static ArrayList<Character> removeSameCharacters(ArrayList<Character> list) {[리스트내의 문자열에 대한 정렬 (MyUtil.java)]
ArrayList<Character> returnList = new ArrayList<Character>();
for (char character : list) { // list 사이즈만큼 반복하며 char 형변수에 담기
if(!returnList.contains(character)) { // returnList에 해당 char 존재하지 않으면 수행
returnList.add(character); // returnList에 char 추가
}
}
return returnList; // returnList 리턴
}
public static ArrayList<Character> sort(ArrayList<Character> list) {[Comparator 인터페이스를 구현한 클래스(SortList.java)]
ArrayList<Character> sortedList = null;Collections.sort(list, new SortList()); // Collections 클래스를 이용한 정렬
sortedList = list; // null 문자를 제외한 값복사
return sortedList; // sortedList 리턴
}
public class SortList implements Comparator<Character> {/* (non-Javadoc)
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*
* 정렬을 위해 인자로 받은 두개의 데이터를 비교하는 메서드
*/
public int compare(Character char1, Character char2) {
if((int) char1 > (int) char2) {
return 1;
} else if((int) char1 < (int) char2) {
return -1;
} else {
return 0;
}
}
}