-
Collections & Collection class 정리JAVA 2022. 8. 23. 11:59728x90반응형
Collections는 Collection을 위한 static 메서드를 제공하는 것을 말합니다.
- 컬렉션 채우기, 복사, 정렬, 검색 : fill(), copy(), sort(), binarySearch()
Collection의 동기화 - synchronizedXXX()
- static Collection synchronizedCollection(Collection c)
- static List synchonizedList(List list)
- static Set synchonizedSet(Set s)
- static Map synchronizedMap(Map m)
- static SortedSet synchronizedSortedSet(SortedSet s)
- static SortedMap synchronizedSortedMap(SortedMap m)
사용방법
List synList = Collections.synchronizedList(new ArrayList(...)); // ArrayList() = 동기화 되지 않은 리스트 // synchronized 를 사용해서 동기화로 만든다. // synList = 동기화된 리스트 (Vector와 비슷하다.)변경 불가(readOnly) Collection 만들기 - 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)
싱글톤 Collection 만들기 - singletonXXX()
객체를 단 1개만 저장하게 만든다.
- static List singletonList(Object o)
- static Set singleton(Object o) >> singletonSet이 아니다!
- static Map singletonMap(Object o)
한 종류의 객체만 저장하는 Collection 만들기 - checkedXXX()
JDK 1.5 이후로 나온 제네릭스와 같은 기능을 하며 현재는 잘 사용되지 않는다.
- static Collection checkedCollection(Collection c, class type)
- static List checkedList(List list, class type)
- static Set checkedSet(Set s, class type)
- static Map checkedMap(Map m, class keyType, class valueType)
- static Queue checkedQueue(Queue queue, class type)
- static NavigableSet checkedNavigableSet(NavigableSet s, class type)
- static SortedSet checkedSortedSet(SortedSet s, class type)
- static NavigableMap checkedNavigableMap(NavigableMap m, class keyType, class valueType)
- static SortedMap checkedSortedMap(SortedMap m, class keyType, class valueType)
사용방법
List list = new ArrayList(); List checkedList = checkedList(list, String.class); // String만 저장가능 checkedList.add("abc"); // ok checkedList.add(new Integer(3)); // Error! String만 저장가능최종 컬렉션 클래스 정리 및 요약
- ArrayList, Vector는 배열 기반이다.
- 이걸 기준으로 만든 게 Stack(Last In First Out) 구조이다.
- 비순차적 추가 및 삭제의 효율이 나쁘다.
- 이 문제를 해결하기 위해 LinkedList를 만들었다.
- 이걸 기준으로 만든 게 Queue(First In First Out) 구조이다.
- 이 문제를 해결하기 위해 LinkedList를 만들었다.
- HashMap, Hashtable은 배열 기반과 LinkedList의 장점을 합쳐서 만든 것이다.
- HashMap에서 Key만 빼서 만든 게 HashSet이다.
- 순서가 없지만 순서를 만들고 싶을 때는 LinkedHashSet일 사용하면 된다.
- HashMap에서 Key만 빼서 만든 게 HashSet이다.
- LinkedList를 기준으로 TreeSet을 만들었다.
- 중위 순회를 하게 되면 자동으로 정렬이 된다.
728x90반응형'JAVA' 카테고리의 다른 글
Java로 만든 RPG 게임 (0) 2022.08.23 Java로 만든 스케줄 관리 프로그램 (1) 2022.08.23 [JAVA] Generics 정의 및 타입변수, 다형성 (0) 2022.08.23 Java 객체지향 공부 다형성, interface, 상속, 포함 등 (0) 2022.08.22 [JAVA] Map 관련 내용 (0) 2022.08.19