List 및 Set 두 인터페이스 모두 Collection 프레임워크에 속합니다. 두 인터페이스 모두 Collection 인터페이스를 확장합니다. 둘 다 개체 컬렉션을 단일 단위로 저장하는 데 사용됩니다.
jdk1.2 이전에는 객체를 단일 단위로 그룹화하기 위해 배열, 벡터 및 해시 테이블을 사용했습니다.
| Sr. 아니요. | 키 | 목록 | 설정 |
|---|---|---|---|
| 1 | 위치 액세스 | 목록은 컬렉션의 요소에 대한 위치 액세스를 제공합니다. | Set은 컬렉션의 요소에 대한 위치 액세스를 제공하지 않습니다. |
| 2 | 구현 | List의 구현은 ArrayList, LinkedList, Vector, Stack입니다. | set 인터페이스의 구현은 HashSet 및 LinkedHashSet입니다. |
| 3 | 중복 | 목록에 중복 요소를 저장할 수 있습니다. | Set에 중복 요소를 저장할 수 없습니다. |
| 4 | 주문 | 목록은 컬렉션에 있는 요소의 삽입 순서를 유지합니다. | 세트는 어떤 순서도 유지하지 않습니다 |
| 5 | 널 요소 | 목록은 여러 null 요소를 저장할 수 있습니다. | 세트는 하나의 null 요소만 저장할 수 있습니다. |
목록의 예
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class ListExample {
public static void main(String[] args) {
List<String> al = new ArrayList<String>();
al.add("BMW");
al.add("Audi");
al.add("BMW");
System.out.println("List Elements: ");
System.out.print(al);
}
} 출력
List Elements: [BMW, Audi, BMW]
집합의 예
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
public class SetExample {
public static void main(String args[]) {
int count[] = {2, 4, 3, 5};
Set<Integer> hset = new HashSet<Integer>();
try{
for(int i = 0; i<4; i++){
hset.add(count[i]);
}
System.out.println(hset);
}
catch(Exception e){
e.printStackTrace();
}
}
} 출력
[2, 4, 3, 5]