david's daily developer note

[Java] Vector 내 원소 정렬하기 본문

[Develop] Language/JAVA

[Java] Vector 내 원소 정렬하기

mouse-david 2010. 10. 5. 11:42
728x90
Vector 에 들어 있는 원소를 정렬하는 방식은 자바의 Vector와 C++ STL의
vector가 비슷 합니다. 표현의 방식이 다를 뿐이죠.

1. 비교자 Comparator 구현
 : Comparator  인터페이스를 상속받아 구현합니다. 예제는 아래에 있습니다.

2. Collections.sort(정렬할 벡터,Comparator 인스턴스);

-- 예제 ---
Member 클래스에 이름과 나이를 저장한 후 이를 Vector에 넣고  나이의 
오름 차순으로 정렬하는 예제 입니다. 내림차순으로 할때는 Comparator 부분에서 리턴값만 바꿔주면 됩니다.
package com; import java.util.Comparator; import java.util.Vector; import java.util.Collections;

public class VectorSort {

public static void main(String[] args){

 Vector m = new Vector();
 Member m1 = new Member();
 m1.name = "홍길동";
 m1.age  = 30;
 m.add(m1);

 m1 = new Member();
 m1.name = "김문선";
 m1.age  = 20;
 m.add(m1);

 m1 = new Member();
 m1.name = "진용";
 m1.age  = 24;
 m.add(m1);

 Collections.sort(m, new MemberComparator());

 for(int i=0; i< m.size(); i++ ){
  Member mm = (Member)m.get(i);
  System.out.println("이름 = "+mm.name+"   나이 = "+mm.age);
 }
}
}

class Member{
  public String name;
  public int age;
}

class MemberComparator implements Comparator{
  public int compare(Object arg0, Object arg1) {
   return ((Member)arg0).age > ((Member)arg1).age ?1:0;
 }
}
출처. http://dev4u.tistory.com/348
728x90