종류
특징
구현클래스
add(element) : 주어진 객체를 맨끝에 추가
add(idx, element) : 주어진 인덱스에 객체를 추가
set(idx, element) : 주어진 인덱스에 저장된 객체를 바꿈
contains(obj) : 주어진 객체가 저장되있는지 여부
get(idx) : 이 위치에 있는 객체를 리턴
isEmpty()
size()
clear() : 저장된 모든 객체를 삭제
remove(idx) : 주어진 인덱스의 객체 삭제
remove(obj) : 주어진 객체를 삭제
보듯이 ArrayList 랑 사용방식 동일. 기능도 거의 동일함!
형태 : Set< E > set = new HashSet< E > ();
cf) 동일한 객체를 판단하는 방법 (이전에 배운 내용임!!)
Iterator<String> iterator = set.iterator();
// 이터페이터 객체의 타입은 Iterator<String> 이다. (안에 String 값이 들어 있으므로)
// set 의 모든 원소에 대해 반복
while iterator.hasNext()){ // 이터레이터 가리키는 객체가 빈 객체인지 판단
String element = itetator.next(); // 이터레이터가 다음 객체를 가리키게 함
Sysout("\t" + element);
}
cf) hashCode() 는 문자열 구성이 다르면 해시코드 결과값이 다르게 나온다.
put(key, value) : 엔트리 추가
containsKey(key) : 주어진 key 객체 가 있는지 여부
containsValue(value) : 주어진 value 객체가 있는지 여부
entrySet() : 해당 Map 에 담긴 모든 Map.Entry 객체를 Set 에 담아서 리턴
keySet() : 모든 키를 Set 객체에 담아서 리턴
get(key) : 주어진 key 에 대한 value 객체를 리턴
isEmpty()
keySet() : 모든 키를 Set 객체에 담아서 리턴
values() :
clear() :
remove(key) : 주어진 key 를 가지는 Map.Entry 를 삭제
형태 : Map< K, V > map = new HashMap< K , V >
// 방법1) key로만 구성된 Set 을 keySet() 으로 얻어내고 iterator 활용하기
Set<String> keySet = map.keySet(); // keySet() 을 호출해서 key 들로만 구성된 Set 를 생성
Iterator<String> keyIterator = keySet.iterator(); // Set 타입으로 변환했으므로 iterator 활용가능
// 이터레이터를 활용해 반복을 돌리면서 출력
while(keyIterator.hasNext()){
String key = keyIterator.next();
Integer value = map.get(key); // 주어진 key 에 해당하는 value 를 얻어옴
System.out.println("\t" + key + ":" + value);
}
// 방법2) for-each 문 활용하기
for(String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
// 방법3) entrySet() 으로 Set 을 얻어오기
Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); // 데이터 타입이 Set은 Set인데, 안에 들어가는 데이터 타입이 Map.Entry 타입이고, Map.Entry 라는 녀석은 String 과 Integer 세트로 구성됨
Iterator<Map.Entry<String, Integer>> entryIterator = entrySet.iterator();
while(entryIterator.hasNext()){
Map.Entry<String, Integer> entry = entryIterator.next(); // 이터레이터가 리턴시켜주는 next() 라는 녀석은 (key, value) Set 객체이다.
String key = entry.getKey();
Integer value = entry.getValue();
Integer value = entry.getValue();
System.out.println("\t" + key + ":" + value);
}
형태 : Map< K, V > map = new HashTable < K, V > ();
TreeSet 의 descendingSet() 을 호출하면 NavigableSet 이라는 데이터 타입이 리턴됨
=> NavigableSet 이란? : 내림차순 정렬된 Set 데이터타입
// TreeSet인 scores 가 내림차순 정렬된 결과가 변수에 저장
NavigableSet<Integer> descendingSet = scores.descendingSet();
for(Integer score : descendingSet){ // 내림차순 출력
System.out.println(score + " ");
}
// 오름차순 결과가 저장
NavigableSet<Integer> ascendingSet = descendingSet.descendingSet();
for(Integer score : ascendingSet){
System.out.println(score + " ");
}