List 목록을 객체별로 정렬
실체류
public class Product {
private int discount;
// getter/setter
}
정렬 테스트 클래스
public class TestSortList {
@Test
public void test1(){
List list = new ArrayList<>(3);
Product p1 = new Product();
p1.setDiscount(1);
list.add(p1);
Product p2 = new Product();
p2.setDiscount(2);
list.add(p2);
Product p3 = new Product();
p3.setDiscount(3);
list.add(p3);
Collections.sort(list, new Comparator() {
@Override
public int compare(Product o1, Product o2) {
if(o1.getDiscount() > o2.getDiscount()){
return 1;
} else if(o1.getDiscount() == o2.getDiscount()){
return 0;
} else {
return -1;
}
}
});
for(Product product : list){
System.out.println(product.getDiscount());
}
}
}
인쇄 결과:
1
2
3
이렇게 하면 승차순의 정렬을 완성할 수 있다.내림차순의 정렬 질서가 필요하면 o1.getDiscount() > o2.getDiscount () 는 앞뒤로 위치를 바꾸면 됩니다.
기타
jdk8에서 lambda 표현식의 쓰기가 도입되었기 때문에 정렬 부분 코드는 다음과 같이 간소화할 수 있습니다.
Collections.sort(list, (o1, o2) -> {
if(o2.getDiscount() > o1.getDiscount()){
return 1;
} else if(o1.getDiscount() == o2.getDiscount()){
return 0;
} else {
return -1;
}
});
또한 인터넷에서 통용되는 리스트 정렬 도구 방법을 제공하여 스스로 참고하여 학습할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
검지offer프로그래밍 시험문제 자바 실현--4.두 갈래 나무를 재건하다소경 오빠 제목 설명: 두 갈래 나무의 앞 순서와 중간 순서의 결과를 입력하고 이 두 갈래 나무를 다시 만드십시오.입력한 앞 순서와 중간 순서의 결과에 중복된 숫자가 없다고 가정하십시오.예를 들어 앞 순서 반복 시퀀...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.