Java - Collections Class
목차
- Collections 사용 이유
- Collections 기능
1. Collections 사용 이유
Collections는 static method를 가진 class이다. 인스턴스를 생성하지 않고도 method를 가져다 쓸 수 있다.
List, Set, Map을 등을 다루는 method들이 정의 되어 있기 때문에 따로 직접 구현을 하지 않고 사용할 수 있다.
대표적으로 List를 정렬하는 method인 Collection.sort()
가 있다.
즉 Collection Framework를 다룰 때 유용한 method를 제공한다.
2. Collections 기능
Collections Class에는 다양한 기능이 있지만 자주 쓰는 기능에 대해서 알아보도록 합시다!!
- sort(List list)
- 리스트를 오름차순으로 정렬하고 싶을 때
List<Integer> list = new ArrayList<>(List.of(1, 4, 3, 5, 6));
// 1 4 3 5 6
Collections.sort(list);
// 1 3 4 5 6
- 리스트를 내림차순으로 정렬하고 싶을 때
- Collections.reverseOrder()를 이용하여 내림차순 Comparator를 사용하자!
List<Integer> list = new ArrayList<>(List.of(1, 4, 3, 5, 6));
// 1 4 3 5 6
Collections.sort(list, Collections.reverseOrder());
// 6 5 4 3 1
- max(Collection<? extends T> coll), min(Collection<? extends T> coll)
- 대표적으로 List, Set과 같은 Collection이 Integer와 같이 specified comparator가 정의되어 있을 경우 최대와 최소를 얻을 수 있다.
Set<Integer> set = new HashSet<>(Set.of(1, 2, 3, 10 ,5));
List<Integer> list = new ArrayList<>(List.of(1, 4, 3, 5, 6));
System.out.println("Set의 최대: " + Collections.max(set));
// 10
System.out.println("Set의 최소: " + Collections.min(set));
// 1
System.out.println("List의 최대: " + Collections.max(list));
// 6
System.out.println("List의 최소: " + Collections.min(list));
// 1
- nCopies(int n, T o)
- n개의 Object o로 구성된 immutable List를 반환한다.
- 반환된 list는 삽입, 삭제가 불가능하다.
- n < 0 일경우 IllegalArgumentException을 발생시킨다.
List<Integer> list = Collections.nCopies(10, 0);
// 0 0 0 0 0 0 0 0 0 0
- replace(List list, Object o)
- list내 모든 원소를 변경한다.
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(2);
list.add(2);
System.out.println(list);
// 출력 값: [2, 2, 2]
Collections.fill(list, 1);
System.out.println(list);
// 출력 값: [1, 1, 1]
- replaceAll(List list, T oldValue, T newValue)
- 리스트 내에 있는 모든 oldValue를 newValue로 바꾼다.
- 특정 값을 가지는 원소의 값만 변경할 수 있는 것이다.
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list);
// 출력 값: [2, 2, 3, 4]
Collections.replaceAll(list, 2, 1);
// 값이 2인 모든 원소를 1로 바꾼다.
System.out.println(list);
// 출력 값: [1, 1, 3, 4]
[ 참고 문헌 ]
https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort(java.util.List)
'프로그래밍 언어 > Java' 카테고리의 다른 글
Java - List의 복사 (1): Collections.unmodifiableList (2) | 2023.03.01 |
---|---|
Java - Iterator (0) | 2022.11.29 |
Java - Map과 HashMap (0) | 2022.11.24 |
Java - Set과 HashSet (0) | 2022.11.23 |
Java - List와 ArrayList (0) | 2022.11.22 |