Java - Set, HashSet

서이·2022년 9월 13일
0

Java

목록 보기
12/27

Set

 List는 저장 순서를 유지하지만,
Set은 저장 순서가 유지되지 않는다

  • 객체의 중복저장 불가 -> 동일 값, 동등 객체의 중복 저장 x
  • 하나의 null은 저장 가능
  • 순서가 유지되지 않기 때문에 인덱스로 꺼내올 수 없음. 그래서 사용하는 것이 이터레이터!
  • Set은 인덱스로 관리하지 않기 때문에, 인덱스를 매개값으로 갖는 메소드가 없다.
  • E라는 타입 파라미터는 Set이 인터페이스가 제네릭 타입이기 때문이다.


Set에 자료 값 입력하기

// Integer 형식
set.add(10);
// String 형식
set.add("Java");
// boolean 형식
set.add(true);
// 객체(클래스)
set.add(new Student());

// 중복값을 넣으려 하면 오류는 안나지만 저장이 안된다
set.add(10);

// 값 삭제하기
set.remove(true);

1. HashSet.iterator()

 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

2. for loop

 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
profile
작성자 개인이 잊을 때마다 보라고 정리한 글

0개의 댓글

관련 채용 정보