#14. JAVA_ Collection
컬렉션이란 자바에서 index의 제약 없이 데이터를 저장할 수 있는 집합 또는 그룹을 의미한다. 대표적인 컬렉션의 클래스로는 Map, Set, List 세 가지가 있다.
Set : 특정 코드에서 중복된 값의 허용이 있어서는 안될 때 사용
- HashSet : 정렬기능을 가지고 있지 않는다
- TreeSet : 오름차순 정렬 기능을 가지고 있다.
HashSet을 사용하기 위해서는 우선 객체화를 시켜야 한다.
HashSet<타입의 wrapper 클래스명> 객체명 = new HashSet<타입의 wrapper 클래스명>();
HashSet을 사용한 예를 들면 다음과 같다.
HashSet<Integer> hs = new HashSet<Integer>();
hs.add(45);
hs.add(20);
hs.add(15);
//set은 중복된 값을 add할 수 없다.
HashSet을 통해 꽤 많은 기능을 사용할 수 있다.
hs.remove(45); -> 45라는 값을 다시 지워준다.
hs.clear(); -> hs의 모든 내용을 삭제한다.
TreeSet도 HashSet과 사용법은 똑같다. 다만, TreeSet은 오름차순으로 정렬해준다.
Map은 키와 값(value)을 묶어서 하나의 데이터로 저장하는 것이다. 키를 통해 값을 검색하는 구조이므로 많은 양의 데이터를 검색하는 데 있어서 매우 뛰어난 성능을 발휘한다. HashMap은 HashSet이나 TreeSet과 사용법이 비슷하다. 우선 똑같은 방법으로 객체를 생성한다. 그 뒤에 값을 저장하는 방식이 다르다. Map은 map.put(key, value); 의 방법으로 값을 저장한다. 예를 통해 알아보자.
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(1, 100);
map.put(2, 200);
map.put(3, 350);
map.put(2, 100);//맵은 키의 중복을 허용하지 않는다
map.put(5, 500);
map.put(6, 170);
map.remove(3);//특정 방을 제거
위와 같이 map에 값을 저장했으면 키를 통해 값을 찾을 수 있으며, 값을 통해 키를 알 수 있다.
//map에 5라는 이름의 키가 존재하는지 판단
if( map.containsKey(5) ) {
System.out.println("5번 열쇠 존재함");
}
//map에 100이라는 값이 저장되어 있는지 판단
if( map.containsValue(100) ) {
System.out.println("100이 있음");
}
int res = map.get(2);
System.out.println(res);//키가 2인 값을 불러오기