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]

更新于: 2023-12-05

2K+ 浏览

开启你的 职业生涯

完成课程即可获得认证

开始
广告
© . All rights reserved.