Collections 클래스
Collections 클래스는 컬렉션을 위한 메서드(static)를 제공한다.
1. 컬렉션 채우기, 복사, 정렬, 검색 - fill(), copy(), sort(), binarySearch() 등 메서드 제공
// entrySet()을 이욥해 map에 저장된 데이터를 불러오는 예시
public static void main(String[] args) {
List list = new ArrayList();
// import static java.util.Collections.*;
// Collection. 을 생략이 가능해진다.
addAll(list, 1,2,3,4,5,6);
rotate(list, 2); // 반시계 반얗(오른쪽)으로 회전
swap(list, 0, 2); // 0과 2번째 끼리의 교환
shuffle(list); // 저장된 요소의 위치를 임의로 변경
reverse(list); // 역순
sort(list, reverseOrder()); // 역순 정렬 reverse(list)와 같은 결과
sort(list); // 오름차순 정렬
int idx = binarySearch(list, 3); // 저장된 위치(index)를 반환, 정렬이 되어 있어야함
System.out.println(list);
int max = (int) max(list); // 최대값
int min = (int) min(list); // 최소값
min = (int) max(list, reverseOrder()); // 반대 정렬 방식의 최대값 : 최소값
fill(list, 9); // List를 9로 채운다.
// list와 같은 크기의 새로운 list를 생성하고 2로 채운다,
List newList = nCopies(list.size(), 2);
// 공통 요소가 없으면 참(true)
disjoint(list, newList);
// newList를 복사하여 list를 바꾼다.
copy(list, newList);
// list의 2를 1로 바꾼다.
replaceAll(list, 2, 1);
// Enumeration 생성
Enumeration e = enumeration(list);
2. 컬렉션의 동기화 - synchronizedXXX()
- 컬렉동기화가 필요한 경우 사용된다.
static Collection unmodifiableCollection(Collection c)
static List unmodifiableList(List list)
static Set unmodifiableSet(Set s)
static Map unmodifiableMap(Map m)
static NavigableSet unmodifiableNavigableSet(NavigableSet s)
static SortedSet unmodifiableSortedSet(SortedSet s)
static NavigableMap unmodifiableNavigableMap(NavigableMap m)
static SortedMap unmodifiableSortedMap(SortedMap m)
Collection sync = Collections.synchronizedCollection(new ArrayList());
List synclist = Collections.synchronizedList(new ArrayList());
Map syncmap = Collections.synchronizedMap(new HashMap());
Set syncset = Collections.synchronizedSet(new HashSet());
3. 변경 불가(readOnly) 컬렉션 만들기 - unmodifiableXXX()
- 컬렉션을 수정할수 없게 만든다(읽기 전용)
static Collection unmodifiableCollection(Collection c)
static List unmodifiableList(List list)
static Set unmodifiableSet(Set s)
static Map unmodifiableMap(Map m)
static NavigableSet unmodifiableNavigableSet(NavigableSet s)
static SortedSet unmodifiableSortedSet(SortedSet s)
static NavigableMap unmodifiableNavigableMap(NavigableMap m)
static SortedMap unmodifiableSortedMap(SortedMap m)
4. 싱글톤 컬렉션 만들기 - singletonXXX()
- 객체 1개만 저장하는 클래스
static List singletonList(Object o)
static Set singleton(Object o) //SingletonSet이 아님에 주의
static Map singletonMap(Object key, Object value)
5. 한 종류의 객체만 저장하는 컬렉션 만들기 - checkedXXX()
- 기존 컬렉션은 여러 종류의 객체를 저장이 가능
- 지네릭스를 사용하면 한가지 객체의 종류만 저장할 수 있을 수 있지만 지네릭스는 JDK 1.5부터 제공되었기 때문에 이전 버전에 필요시 사용됨
List list = new ArrayList();
List checkedList = checkedList(list, String.class); //String만 저장가능
checkedList.add("abc");
checkedList.add(new Integer(3)); //에러. ClassCastException발생
'Java' 카테고리의 다른 글
[JAVA] 열거형(enum) (0) | 2024.01.05 |
---|---|
[JAVA] 제네릭(Generics) (0) | 2023.11.25 |
[JAVA] Map 인터페이스 (0) | 2023.11.11 |
[JAVA] Set 인터페이스 (0) | 2023.11.10 |
[JAVA] Comparator와 Comparable 인터페이스 (0) | 2023.11.08 |