티스토리 뷰
자바 정렬 (sort)
기본
- Arrays.sort 를 이용해서 올림 및 내림차순 정렬을 할 수 있습니다.
int[] intArray = new int[] { 3, 11, 7, 5, 6 }
// 오름 차순 3 5 6 7 11
Arrays.sort(intArray);
// 내림 차순 11 7 6 5 3
Arrays.sort(intArray, Collections.reverseOrder());
객체정렬
- Comparable에 compare를 이용해 정렬을 할 수 있습니다.
- 양수(+)를 리턴할 경우 : 1번이 앞에 위치
- 음수(-)를 리턴할 경우 : 2번이 앞에 위치
- 0을 리턴할 경우 : 동일한 값이기 때문에 입력 순서를 유지합니다.
public class Item {
private String name;
private double price;
public Item(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
public class Sort {
public static void main(String[] args) {
List<Item> items = new ArrayList<>();
items.add(new Item("사과", 1000));
items.add(new Item("3분카레", 1500));
items.add(new Item("양배추", 2500));
items.add(new Item("참치캔", 2000));
items.add(new Item("3분짜장", 1300));
Collections.sort(items, sorter);
for (Item item: items) {
System.out.println(item.getName() + " : " + item.getPrice());
}
}
private static Comparator<Item> sorter = new Comparator<Item>() {
@Override
public int compare(Item i1, Item i2) {
return Double.compare(i1.getPrice(), i2.getPrice());
}
};
}
결과
사과 : 1000.0
3분카레 : 1500.0
3분짜장 : 1500.0
참치캔 : 2000.0
양배추 : 2500.0
객체 2중 정렬 (price 정렬 후 같은 가격이면 name 정렬)
...
private static Comparator<Item> sorter = new Comparator<Item>() {
@Override
public int compare(Item i1, Item i2) {
int result = Double.compare(i1.getPrice(), i2.getPrice();
return result == 0 ? i1.getName.compareTo(i2.getName()) : result;
}
};
결과
사과 : 1000.0
3분짜장 : 1500.0
3분카레 : 1500.0
참치캔 : 2000.0
양배추 : 2500.0
'Programming > JAVA' 카테고리의 다른 글
자바 문자열 숫자인지 확인 (0) | 2022.06.25 |
---|---|
[Java] 자바 배열, 리스트 랜덤으로 섞기 random shuffle (0) | 2022.06.22 |
자바 Boolean 정렬 Boolean.compare (0) | 2021.04.07 |
자바 map 다중제거 Iterator (0) | 2021.04.06 |
JAVA 파일 삭제 지우기 (0) | 2016.09.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 우체국
- 근로소득원천징수영수증 발급 방법
- 자바
- 근로소득원천징수영수증
- 신한카드
- Java Date 변환
- 자바 String 변환
- 실업급여
- 여권
- Javascript time to seconds
- 안드로이드
- 휴면계좌
- 정렬
- nginx Request Entity Too Large
- 핸드폰
- 구글
- Java LocalDateTime 변환
- 자바 소수점
- 아이폰
- 자바 Date 변환
- 크린토피아 가격표
- Java String 변환
- nginx client_max_body_size
- 크린토피아
- 자바스크립트 time to seconds
- nginx 파일 업로드 크기
- 국민연금
- 자바 LocalDateTime 변환
- 근로소득원천징수영수증 발급
- 자바 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함