List Sort Sample Using Comparator<T> Interface

사용자 삽입 이미지










어떠한 문자열, 또는 수치값등을 List 형태의 객체 담아 정렬하는 기법이다.
첨부된 예제에서는 ArrayList를 사용하였고, String 형 객체에 담긴 문자열을 ArrayList에 담아
중복문자 및 공백문자를 제거하여, 오름차순으로 정렬하는 코드를 구현하였다.

주요메서드는 다음과 같다.
조금 더 자세한 내용은 검색을 통해 스스로 찾길 바란다.


[중복문자 제거 메서드(MyUtil.java)]
 public static ArrayList<Character> removeSameCharacters(ArrayList<Character> list)  {
  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 리턴
 }
[리스트내의 문자열에 대한 정렬 (MyUtil.java)]
 public static ArrayList<Character> sort(ArrayList<Character> list) {
  ArrayList<Character> sortedList = null;

  Collections.sort(list, new SortList());    // Collections 클래스를 이용한 정렬
  sortedList = list;         // null 문자를 제외한 값복사
 
  return sortedList;         // sortedList 리턴
 }

[Comparator 인터페이스를 구현한 클래스(SortList.java)]
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;
  }
 }
}