# List와 Set의 차이점
1. List
- 데이터의 순서(index)가 있다.
- 중복되는 데이터를 저장할 수 있다.
2. Set
- 데이터의 순서(index)가 없다.
- 중복되는 데이터를 저장할 수 없다.
- Set에 데이터를 추가할 때는 add()메소드를 사용한다.
(실습)
Set에 데이터 저장하기
- Set 데이터의 출력 결과를 보면 데이터를 저장한 순서와 다른 것을 확인할 수 있다.
- Set에 중복되는 데이터를 저장하면 false를 반환하고 데이터는 추가되지 않는다.
Set 데이터 변경/수정하기
- Set은 데이터를 수정하는 명령이 따로 없기 때문에 데이터를 수정하려면
해당 자료를 삭제한 후 추가하는 방법을 사용한다.
Set의 데이터 꺼내오기1
- Set의 데이터는 순서(index)가 없기 때문에 List처럼 index로 데이터를 하나씩 불러올 수 없다.
따라서 데이터를 하나씩 가져오기 위해서는 Iterator 객체로 변환해야 한다.
- Set 데이터를 Iterator 객체로 변환하는 메소드 -> iterator()
- Iterator에서 데이터를 하나씩 꺼내오기
Iterator의 hasNext() 메소드
-> Iterator의 데이터를 가리키는 포인터가 있는데, 이 포인터가 가리키는 곳
다음 번째에 데이터가 있으면 true, 없으면 false를 반환한다.
Set의 데이터 꺼내오기2 (향상된 for문 사용)
한 학급의 학생들 중 번호를 이용하여 3명을 추첨하는 프로그램을 작성해 보자.
- 번호는 1 ~ 24번까지 존재한다.
(Set의 중복되는 데이터는 저장되지 않는 성질을 이용한다.)
Set형 자료를 List형으로 변환하기
- List 객체를 생성할 때 생성자의 인수값으로 Set 데이터를 넣어준다.
Set을 이용하여 숫자 야구 게임 프로그램을 작성하시오.
- 컴퓨터의 숫자는 난수를 이용하여 구한다.
- 스트라이크는 S, 볼은 B로 나타낸다.
풀이 1.
풀이2. (1의 풀이와 비슷하나 각각의 메소드를 생성했다는 차이점이 있음)
Set을 이용하여 로또 번호 생성 프로그램을 작성하시오.
- 사용자는 로또를 구매할 때 구매할 금액을 입력하고
입력한 금액에 맞게 로또번호를 출력한다.
- 로또 한장의 금액은 1000원이며 최대 100장까지만 구입할 수 있고,
거스름돈도 계산하여 출력한다.
풀이 1.
'JAVA' 카테고리의 다른 글
[JAVA] 하나의 스레드와 여러 개의 스레드가 수행되는 시간 비교하기 (0) | 2021.07.30 |
---|---|
[JAVA] 멀티 스레드(multi Thread) - 1 (0) | 2021.07.29 |
[JAVA] enum(열거형) (0) | 2021.07.29 |
[JAVA] 컬렉션 프레임워크 - Map (0) | 2021.07.27 |
[JAVA] equals() 메소드 , hashCode() 메소드 (0) | 2021.07.27 |