List 和 Set 在 Java 中的区别
List 和 Set 两个接口都属于 Collection 框架。这两个接口都扩展了 Collection 接口。它们都用于将一组对象存储为一个单位。
在 jdk1.2 之前,我们使用数组、向量和哈希表将对象分组为一个单位。
| 序号 | 键 | List | Set |
|---|---|---|---|
| 1 | 位置访问 | List 提供对集合中元素的位置访问。 | Set 不提供对集合中元素的位置访问。 |
| 2 | 实现方式 | List 的实现方式包括 ArrayList、LinkedList、Vector 和 Stack。 | Set 接口的实现方式为 HashSet 和 LinkedHashSet。 |
| 3 | 重复 | 我们可以在 list 中存储重复元素。 | 我们不能在 Set 中存储重复元素。 |
| 4 | 排序 | List 保持集合中元素的插入顺序。 | Set 不保持任何顺序。 |
| 5 | Null 元素 | List 可以存储多个 null 元素。 | Set 只能存储一个 null 元素。 |
List 示例
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]
Set 示例
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, 3, 4, 5]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP