Set-HashSet (보완 필요)

2022. 3. 26. 13:59java/java

Set

- 순서도 없고 중복도 없는 자료구조 interface data type
  이기에 set(); 으로 객체 생성을 하지 못하고 새로 정의
  하거나 이미 정의 되어져있는 클래스를 생성해서 써야한다.

 hashset은 정렬할 필요가 없기 때문에 가장 속도가 빠르다

 

 

package javaUtil;

import java.util.HashSet;
import java.util.Set;

public class BoxExam {

	public static void main(String[] args) {
		
		Set<String> set1 = new HashSet<>();
		
		boolean flag1 = set1.add("kang");
		boolean flag2 = set1.add("kim");
		boolean flag3 = set1.add("kang");
		
		System.out.println(set1.size());
	}
}

set1 자료형의 메서드 add()는 boolean을 반환하기 때문에 boolean 변수를 사용했다.

set1의 개수를 구하면 3개가 아닌 2개가 나온다. kang이라는 중복을 허용하지 않기 때문이다.

 

 

 

package javaUtil;

import java.util.HashSet;
import java.util.Set;

public class BoxExam {

	public static void main(String[] args) {
		
		Set<String> set1 = new HashSet<>();
		
		boolean flag1 = set1.add("kang");
		boolean flag2 = set1.add("kim");
		boolean flag3 = set1.add("kang");
		
		System.out.println(set1.size());
		
		System.out.println(flag1);
		System.out.println(flag2);
		System.out.println(flag3);
	}
}

 

 실제 flag들이 어떤 값을 가지고 있는지 출력해보자

flag1, flag2는 true를 반환하지만 flag3는 false를 반환한다.

 

 

 

package javaUtil;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class BoxExam {

	public static void main(String[] args) {
		
		Set<String> set1 = new HashSet<>();
		
		boolean flag1 = set1.add("kang");
		boolean flag2 = set1.add("kim");
		boolean flag3 = set1.add("kang");
		
		System.out.println(set1.size());
		
		System.out.println(flag1);
		System.out.println(flag2);
		System.out.println(flag3);
		
		Iterator<String> iter = set1.iterator();
		
		while(iter.hasNext()) {
			String str = iter.next();
			System.out.println(str);
		}
	}
}

Iterator 인터페이스 객체를 생성하고 set1 의 자료를 하나씩 출력해보면 kang, kim만 나오는걸 알 수 있다.

'java > java' 카테고리의 다른 글

인터페이스 선언  (0) 2022.04.14
인터페이스의 역할  (0) 2022.04.14
Generic (보완 필요)  (0) 2022.03.26
Object 클래스  (0) 2022.03.26
자바 데이터 타입  (0) 2022.03.13