컬렉션의 동기화
: 멀티 쓰레드 프로그래밍에서는 하나의 객체를 여러 쓰레드가 동시에 접근할 수 있기 때문에 데이터의 일관성을 유지하기 위해서는
공유되는 객체에 동기화가 필요
static Collection synchronizedCollection(Collection c)
static List synchronizedList(List list)
static Set synchronizedSet(Set s)
static Map synchronizedMap(Map m)
static SortedSet synchronizedSortedSet(SortedSet s)
static SortedMap synchronizedSortedMap(SortedMap m)
// ex)
List syncList = Collections.synchronizedList(new ArrayList(...));
변경불가 컬렉션 만들기
: 데이터 보호를 위해 읽기전용으로 만들어야 할 때가 있음
static Collection unmodifiableCollection(Collection c)
static List unmodifiableList(List list)
static Set unmodifiableSet(Set s)
... // 나머지도 이런식으로 적용
싱글톤 컬렉션 만들기
: 단 하나의 객체만을 저장하는 컬렉션을 만들 때, 반환된 컬렉션은 변경 불가.
static List singletonList(Object o)
static Set singleton(Object o) // singletonSet이 아님
static Map singletonMap(Object key, Object value)
한 종류의 객체만 저장하는 컬렉션 만들기
: 컬렉션에 지정된 종류의 객체만 저장할 수 있도록 제한하고 싶을 때
static Collection checkedCollection(Collection c, Class type)
static List checkedList(List list, class type)
static Set checkedSet(Set s, Class type)
... // 이런식으로 사용
- 사용방법
List list = new ArrayList();
List checkedList = checkedList(list, String.class);
checkedList.add("abc"); // OK.
checkedList.add(new Integer(3)); // error
'Language > java' 카테고리의 다른 글
[Java] 지네릭스_지네릭 클래스의 객체 생성과 사용 (0) | 2022.07.29 |
---|---|
[Java] 지네릭스란? (0) | 2022.07.28 |
[Java] 컬렉션 프레임윅 (HastMap과 Hashtable) (0) | 2022.07.27 |
[Java] 컬렉션 프레임윅 (TreeSet) (0) | 2022.07.27 |
[Java] 컬렉션 프레임윅 (HashSet) (1) | 2022.07.27 |
댓글