>  기사  >  Java  >  컬렉션(객체) 정렬

컬렉션(객체) 정렬

巴扎黑
巴扎黑원래의
2016-12-10 09:22:001645검색

Collections.sort 메소드를 사용하여 목록을 정렬하는 방법에는 두 가지가 있습니다.
첫 번째는 목록의 객체가 다음과 같이 Comparable 인터페이스를 구현한다는 것입니다.
[java] view plain copy
/ **
* 순서에 따라 사용자 정렬
*/
공용 클래스 사용자가 Comparable를 구현합니다. > } }
public void setName(String name) {
this.name = name;
}
public Integer getOrder() {
return order; 정수 순서 ) {
this.order = order;
} public int CompareTo(User arg0) {
return this.getOrder().compareTo(arg0.getOrder())
}
} 테스트해 보세요:
public class Test{

public static void main(String[] args) {
User user1 = new User()
user1.setName("a" );
user1.setOrder(1);
사용자 user2 = new User()
user2.setOrder(2); ; User> list = new ArrayList(); //여기에 user2를 추가하고
list.add(user2)
list.add(user1); sort (list);
for(User u : list){
System.out.println(u.getName())
} 🎜>
출력 결과는 다음과 같습니다
a
b
두 번째 방법은 Collections.sort 오버로드 방법을 기반으로 합니다. 예:
[java] view plain copy
/* *
* 순서에 따라 사용자 정렬
*/
public class User { //여기서 Comparable 인터페이스를 구현할 필요가 없습니다.
private String name;
public String getName() {
return name; 문자열 이름) {
this.name = 이름;
}
public Integer getOrder() {
반환 순서 }
public void setOrder(Integer order) {
this.order; = order;
}
}

메인 클래스에 이렇게 작성하세요(HastSet——>List——>sort Sorting):
public class Test {
public static void main(String[] args) {
사용자 user1 = new User();
user1.setName("a")
user1.setPrice(11)
사용자 user2 = new 사용자();
user2.setName("b")
user2.setPrice(2);
Set Hset = new HashSet();
Hset.add(user2)
Hset.add(user1); List list = new ArrayList(); list.addAll(Hset);


Collections.sort(list,new Comparator(){
공개 int 비교(사용자 arg0 , 사용자 arg1) {
             return arg0.getPrice().compareTo(arg1.getPrice());                                                           
System.out .println(u.getName());                                          return arg0.getOrder().compareTo(arg1.getOrder()); 다음으로 변경:
return arg1.getOrder().compareTo(arg0.getOrder());
가 내림차순이 됩니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.