728x90
반응형
List : 데이터의 순번이 존재하고, 중복이 가능하다.
Set : 데이터의 순번이 없고, 중복이 불가하다.
Set은 List와 다르게 중복이 불가능하여 잘 사용하지 않는다.
하지만 유용한 기능도 있어 알아두고 사용할 곳이있다면 좋을 것 같다.
Set에는 HashSet과 TreeSet이 있다. 요약하자면
- Set이란 순서가 없는 집합체이며, 중복을 허용하지 않는다.
- TreeSet은 HashSet과 다르게 그 값이 정렬되어 저장이 되지만, 그렇기 때문에 HashSet보다 속도가 느리다.
1 2 3 4 5 6 | HashSet<String> set1 = new HashSet<>(); // List와 다르게 중복 불가. Set<String> set3 = new HashSet<>(); // 오름 차순 정렬 -> 트리셋은 오름차순 기억하기. TreeSet<String> set2 = new TreeSet<>(); Set<String> set4 = new TreeSet<>(); | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package set; import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class Set02 { public static void main(String[] args) { // Set 객체 생성 Set<String> set = new HashSet<>(); //데이터 삽입 set.add("java"); set.add("C++"); set.add("python"); set.add("python"); // 중복이라 하나만 출력된다. 그리고 순서도 상관없음. //set은 인덱스가 없어서 for문 못쓴다. 단, for each는 가능하다고 한다.. for(String e : set) { System.out.println(e); } System.out.println(); Set<String> set2 = new TreeSet<>(); // 중복제거 그리고 오름차순. set2.add("김자바"); set2.add("최자바"); set2.add("박자바"); set2.add("윤자바"); set2.add("윤자바"); for(String e : set2) { System.out.println(e); } } } | cs |
데이터를 삽입후 foreach문을 돌려 데이터를 출력해보았다.
중복이 불가능하기 때문에 데이터 삽입 과정에서 받아온 python 두개는 하나만 출력되고, 오름차순으로 정렬된다.
따라서 첫번쨰 foreach를 돌리면 c++ python java만 실행될 것이다.
두번째 set2에도 각각 데이터를 집어넣고, 중복되는지 오름차순이 되는지 검사해보았다.
그 결과 set과 같은 형태로 출력이 된걸 확인해볼 수 있다.
728x90
반응형
'✨ Java > 컬렉션 프레임워크(CollectionFramework)' 카테고리의 다른 글
자바(JAVA) - 컬렉션프레임워크 Map - 2 (0) | 2023.03.31 |
---|---|
자바(JAVA) - 컬렉션프레임워크 List와 Map 같이쓰기 (0) | 2023.02.15 |
자바(JAVA) - 컬렉션프레임워크 Map (0) | 2023.02.15 |
자바(JAVA) - ArrayList 이용해 회원 관리 시스템 만들기 (0) | 2023.02.15 |
자바(JAVA) - 컬렉션프레임워크 ArrayList (0) | 2023.02.15 |
댓글