1) 객체를 주머니에 넣은 것과 같은 형태의 자료구조
HashSet, TreeSet(자동정렬), LinkedHashSet(순서유지) 등이 있음..

2) 기본적으로 List처럼 인덱스 값이 존재하지 않음.
3) 중복도 허용하지 않음(null값도 중복 안됨)
제네릭이 String 이 아닐때는 오버라이딩을 직접 해주어야함
-> hash, equals 오버라이드(소스메뉴에 있음)
4) Set 선언 방법
Set<String> set = new HashSet<String>();
6) Set 주요 메소드
① 객체 추가 : add
② 객체 수 확인 : size
③ 객체 삭제 : remove
④ 객체 검색 : iterator + hasNext
⑤ 비어있는지 확인 : isEmpty
e.g.)
set.add("name");
set.add("age");
// -------------------------------------- 객체 추가 (add)
System.out.println("저장된 데이터 수 : " + set.size());
// -------------------------------------- 객체 수 확인(size)
System.out.println(set.remove("name"));
// remove의 반환값은 boolean -> 제거완료면 true, 안되면 false
// -------------------------------------- 객체 삭제 (remove)
// 1) 첫번째 방법(Iterator, 반복자)
Iterator<String> iter = set.iterator(); // set을 Iterator로
while(iter.hasNext()) { // it.hasNext() : 다음 값이 있으면 true 반환
System.out.println(it.next()); // it.next() : 다음 값(객체)를 얻어옴
}
// 2) 두번째 방법(향상된 for문)
for(String temp : set) { // for(하나씩 꺼내서 저장할 변수 : 컬렉션)
System.out.println(temp);
}
}
// -------------------------------------- 객체 검색 (Iterator + ..)
System.out.println(set.isEmpty());
// isEmpty의 반환값은 boolean -> 객체가 없으면 true, 있으면 false
// -------------------------------------- 비어있는지 확인 (isEmpty)
1) 키값과 밸류가 한쌍을 이루는 형태의 자료구조
HashMap, TreeMap 등..

2) key 값만 모아두면 set의 특징(중복 안됨)
3) value를 모아두면 List의 특징 (중복 허용)
4) Map 선언 방법
e.g. )
Map<Integer, String> map = new HashMap<Integer, String>();
// 인티저가 key, 스트링이 밸류
5) Map 주요 메소드
① 객체 추가 : put
② 저장 객체 리턴 : get
③ 포함 여부 확인 : contains
④ 키가 있는지 확인 : containsKey
⑤ 값이 있는지 확인 : containsValue
⑥ 비어있는지 확인 : isEmpty
⑦ 저장된 키값의 수 확인 : size
⑧ 객체 삭제 : remove
e.g.)
map.put("id", "user02");
// -------------------------------------- 객체 추가 (put)
System.out.println(map.get("id"));
// key값으로 가져옴
// -------------------------------------- 저장 객체 리턴 (get)
// 나머지는 다른 컬렉션이랑 비슷
------------------
잘 읽었습니다. 좋은 정보 감사드립니다.