HashSet과 ArrayList는 모두 Java Collection 프레임워크의 가장 중요한 클래스입니다.
다음은 ArrayList와 HashSet의 중요한 차이점입니다.
Sr. 아니요. | 키 | 배열 목록 | 해시셋 |
---|---|---|---|
1 | 구현 | ArrayList는 목록 인터페이스의 구현입니다. | 한편 HashSet은 set 인터페이스를 구현한 것입니다. |
2 | 내부 구현 | ArrayList는 구현을 위해 내부적으로 배열을 구현합니다. | HashSet은 구현을 위해 내부적으로 Hashmap을 사용합니다. |
3 | 요소 순서 | ArrayList는 삽입 순서, 즉 삽입되는 개체의 순서를 유지합니다. | HashSet은 순서가 지정되지 않은 컬렉션이며 순서를 유지하지 않습니다. |
4 | 중복 | ArrayList는 컬렉션에서 중복 값을 허용합니다. | 반면에 Hashset에서는 중복 요소가 허용되지 않습니다. |
5 | 인덱스 성능 | ArrayList는 성능을 위해 인덱스를 사용합니다. 즉 인덱스 기반 인덱스는 get(index)을 호출하여 객체를 검색하거나 remove(index)를 호출하여 객체를 제거할 수 있습니다. | HashSet은 완전히 객체를 기반으로 하며 get() 메서드를 제공하지 않습니다. |
6 | 널 허용 | 아무 제한 없이 arraylist에 null 값을 삽입할 수 있습니다. | 반면 Hashset은 컬렉션에서 하나의 null 값만 허용하며 그 이후에는 null 값을 추가할 수 없습니다. |
ArrayList와 Hashset의 예
JavaTester.java
import java.io.*; import java.util.*; public class JavaTester { public static void main(String[] args) throws IOException{ int n = 5; List<Integer> al = new ArrayList<>(n); for (int i = 1; i <= n; i++) { al.add(i); } System.out.println(al); al.remove(3); System.out.println(al); for (int i = 0; i < al.size(); i++) { System.out.print(al.get(i) + " "); } } }
출력
[1, 2, 3, 4, 5] [1, 2, 3, 5] 1 2 3 5
예시
JavaTester.java
import java.util.HashSet; import java.util.Set; public class JavaTester { public static void main(String[] args){ Set<Integer> hs = new HashSet<>(); hs.add(1); hs.add(2); hs.add(3); hs.add(4); hs.add(4); for (Integer temp : hs) { System.out.print(temp + " "); } } }
출력
1 2 3 4