티스토리 뷰
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