Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 ArrayList와 HashSet의 차이점

<시간/>

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