티스토리 뷰
Goal
- set구조의 특징에 대해 알아본다.
1. set의 특징
1-1 순서대로 저장되지 않음
- 출력 결과 : [김유신, 조자룡, 강감찬, 이순신]
- hash방식으로 저장되어 있기 때문에, 출력 순서는 입력 순서와 관계 없다.
- data의 순서 개념이 없기 때문에 get(index) 사용 불가.
package set.practice.fastcampus;
import java.util.HashSet;
public class HastSetTest {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("이순신");
set.add("김유신");
set.add("강감찬");
set.add("조자룡");
System.out.println(set);
}
}
1-2 중복을 허용하지 않는다.
- 출력결과 : [김유신, 강감찬, 이순신]
- HashSet은 중복을 허용하지 않기 때문에 "이순신"이 두번 add 됐을 경우, 출력시에 하나의 data만 출력되는 것을 볼 수 있음.
- ID, 학번, 주민등록번호 등 중복을 허용하지 않는 data를 관리하기 용이
package set.practice.fastcampus;
import java.util.HashSet;
public class HastSetTest {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("이순신");
set.add("김유신");
set.add("강감찬");
set.add("이순신");
System.out.println(set);
}
}
- 출력결과 : [이순신, 김유신, 강감찬, 이순신]
- ArrayList는 중복을 허용하고, add한 순서대로 data를 출력함.
package set.practice.fastcampus;
import java.util.ArrayList;
import java.util.HashSet;
public class HastSetTest {
public static void main(String[] args) {
ArrayList<String> set = new ArrayList<String>();
set.add("이순신");
set.add("김유신");
set.add("강감찬");
set.add("이순신");
System.out.println(set);
}
}
1-3 iterator를 이용하여 data를 받아온다.
- set은 순서대로 저장되지 않는데 어떻게 하나씩 출력할 수 있을까?
- iterator() : java의 collection(list, set 등)계열에서 불러올 수 있는 함수. data.length를 확인하여 값이 있으면 Iterator클래스 내부적으로 nextindex를 증가시켜 next 값을 하나씩 출력할 수 있게함.
->( iterator 자세히 알아보기 )
- 출력결과 : 김유신 강감찬 이순신
package set.practice.fastcampus;
import java.util.HashSet;
import java.util.Iterator;
public class HastSetTest {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("이순신");
set.add("김유신");
set.add("강감찬");
Iterator<String> ir = set.iterator();
while(ir.hasNext()) {
String str = ir.next();
System.out.println(str);
}
}
}
FastCampus set-1 부터 다시 듣기
* 더 알아보기
- (?)set구조는 내부적으로 배열을 이용하는지, 이용하지 않는다면 어떻게 iterator를 통해 반복할 수 있는지.
-> 참고1. iterator implementation. https://gerardnico.com/lang/java/iterator
-> 참고2. set과 그 구조 간단하게 설명 https://dreamzelkova.tistory.com/entry/HNH-%EB%86%8D%EC%9E%A5-%EB%A7%8C%EB%93%A4%EA%B8%B0
'Study > DataStructure' 카테고리의 다른 글
해시, 해시함수, 해시테이블 (Hash, Hash Table) (0) | 2020.03.12 |
---|---|
생활코딩 DataStructure -6 (0) | 2020.02.24 |
Queue(Java) (0) | 2020.02.18 |
Stack(Java) (0) | 2020.02.18 |
생활코딩 DataStructure -5 (0) | 2020.02.17 |
- 20200502
- 20201204
- 20200423
- 20200425
- 20200428
- 20200429
- 20200330
- 20200406
- 20200624
- 20200413
- 20200420
- 20200622
- 20200319
- chapter7
- 20200503
- 20200804
- 20200403
- chapter8
- 생활코딩리눅스
- 백준
- 20200512
- 20200504
- 20200510
- 20200421
- 20200317
- 20200424
- likelion
- 20200415
- 20200417
- 20200427
- Total
- Today
- Yesterday