티스토리 뷰

Java/JAVA

Set

Jenny_yoon 2023. 1. 6. 12:48
728x90
반응형
Set

- 저장 순서가 x (값을 저장할 때와 값을 찾을 때 순서가 다를 수 있다)

- 객체 중복 저장 x

- 하나의 null 만 저장 가능

- 객체를 인덱스로 관리하지 x

    ㄴ 인덱스를 매개값으로 갖는 메소드(set.get() 등) 가 없다.

    ㄴ 대신, 전체 객체를 대상으로 한번씩 반복해서 가져오는 반복자(iterator)를 제공함. iterator() 메소드를 호출하면 얻을 수 있다.

 

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

public class Set01 {
	public static void main(String[] args) {
		
		Set<Integer> set = new HashSet<Integer>();
		set.add(5);
		set.add(6);
		set.add(7);
		set.add(10);
		set.add(5);
		set.add(8);
		set.add(7);
		set.add(9);
		set.add(10);
		System.out.println(set); //중복된값 제거되어 출력됨. set은 중복허용 안됨!
		System.out.println(set.size()); //6
//		System.out.println(set.get()); //set은 index개념이 없어서 오류!
		System.out.println(set.toArray());
		
		for(Integer integer : set) {
			System.out.println(integer); //모든 배열 값 출력
		}
		
		System.out.println("================================");
		Iterator<Integer> iterator = set.iterator();
		while(iterator.hasNext()) {
			Integer integer = (Integer)iterator.next();
			System.out.println(integer); //모든 배열 값 출력 
		}
	}
}

 

Set<Integer> set = new HashSet<Integer>();
set.add(5);
set.add(6);
set.add(7);
set.add(10);
set.add(5);
set.add(8);
set.add(7);
set.add(9);
set.add(10);
Integer[]arr = set.toArray(new Integer[0]); //set을 배열로 변환 
System.out.println(Arrays.toString(arr));//배열 출력 //[5, 6, 7, 8, 9]

 

 

응용문제

set으로 로또번호 생성기 만들기

Set<Integer> lotto = new HashSet<Integer>();
for (int i = 1; i < 7; i++) {
    int num = (int)(Math.random()*45)+1;
    lotto.add(num);
}
System.out.println(lotto);
728x90
반응형

'Java > JAVA' 카테고리의 다른 글

컬렉션 프레임워크(Collection Framwork)란?  (0) 2023.01.08
Map  (0) 2023.01.08
String 문자열  (2) 2023.01.06
Iterator (반복자)  (0) 2023.01.06
compareTo() & indexOf()  (0) 2023.01.06
댓글
250x250
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday