List는 저장 순서를 유지하지만,
Set은 저장 순서가 유지되지 않는다
Set에 자료 값 입력하기
// Integer 형식
set.add(10);
// String 형식
set.add("Java");
// boolean 형식
set.add(true);
// 객체(클래스)
set.add(new Student());
// 중복값을 넣으려 하면 오류는 안나지만 저장이 안된다
set.add(10);
// 값 삭제하기
set.remove(true);
Iterator를 이용하여 HashSet의 데이터를 순회할 수 있습니다.
HashSet.iterator()는 Iterator 객체를 리턴해 줍니다. 이 객체로 Set의 모든 아이템을 순회할 수 있습니다.
public Iterator iterator()
다음은 HashSet의 모든 객체를 순회하면서 출력하는 코드입니다.
Set은 인덱스로 객체를 검색해서 가져오는 메소드가 없다. 대신, 전체 객체를 하나씩 가져오는 반복자(=Iterator)를 제공하는 것이다
// 반복자 메소드 호출
Iterator 변수명 = set객체명.iterator();
// 가져올 객체가 있을때까지 (true 리턴받아) 반복
// =저장된 객체 수만큼 반복한다
while(변수명.hasNext()) {
System.out.println(변수명.next());
Set<String> fruits = new HashSet<String>();
fruits.add("apple");
fruits.add("banana");
fruits.add("kiwi");
Iterator<String> it = fruits.iterator();
while (it.hasNext())
System.out.println("fruits: " + it.next());
Output:
fruits: banana
fruits: apple
fruits: kiwi
for문을 사용하여 Set의 모든 아이템에 접근할 수도 있습니다. iterator보다 for가 좀 더 간단해보입니다.
Set<String> fruits = new HashSet<String>();
fruits.add("apple");
fruits.add("banana");
fruits.add("kiwi");
for (String fruit : fruits) {
System.out.println("fruits: " + fruit);
}
Output:
fruits: banana
fruits: apple
fruits: kiwi