首页 > 编程笔记 > Java笔记 阅读:12

Java集合(Set)的用法(附带实例)

Java 中的 Set 集合是由一串无序的、不能重复的相同类型元素构成的集合。

图下所示是一个球队的 Set 集合,这个 Set 集合中又包含了若干球员,这些球员不能重复。


图 1 Set集合

List 集合中的元素是有序的、可重复的,而 Set 集合中的元素是无序的、不能重复的。List 集合强调的是有序,Set 集合强调的是不重复。当不考虑顺序且没有重复元素时,Set 集合和 List 集合是可以互相替换的。

Java 中描述 Set 集合的接口是 Set,它的直接实现类主要是 HashSet 和 TreeSet,其中 HashSet 是基于散列表数据结构的实现。

Java Set接口的常用方法

Set 接口也继承自 Collection 接口,Set 接口中大部分都继承自 Collection 接口,这些方法如下。

1) 操作元素

2) 判断元素

3) 其他


示例代码如下:
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String args[]) {
        Set<Integer> players = new HashSet<>(); // 声明 Set 用于存储球员编号

        // 向集合中添加球员编号
        players.add(10);
        players.add(11);
        players.add(12);
        players.add(13);
        players.add(13); // ①

        // 打印球员编号
        System.out.println("--球员编号--");
        for (Integer player : players) {
            System.out.println("球员编号:" + player);
        }
    }
}
上述代码创建了 Set 集合对象,然后试图添加元素到 Set 集合中,需要注意的是,当代码第 ① 处试图插入重复元素时,是不能插入的,因此虽然多次添加数据,但是只保留一个。

程序的运行结果如下:

--球员编号--
球员编号:10
球员编号:11
球员编号:12
球员编号:13

Java遍历Set集合

遍历 Set 集合有如下两种方法:
示例代码如下:
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
       // 创建一个 set 集合并添加球员编号
       Set<Integer> players = new HashSet<>();
       players.add(10);
       players.add(11);
       players.add(12);
       players.add(13);

       // 使用增强 for 循环遍历 Set 集合
       System.out.println("--使用 Java 风格的增强 for 循环遍历--");
       for (Integer player : players) {
           System.out.println("球员编号:" + player);
       }

       // 使用 forEach() 方法遍历 Set 集合
       System.out.println("--使用 forEach() 方法遍历--");
       players.forEach(player -> {
           System.out.println("球员编号:" + player);
       });
   }
}
程序的运行结果如下:

--使用 Java 风格的增强 for 循环遍历--
球员编号:10
球员编号:11
球员编号:12
球员编号:13
--使用 forEach() 方法遍历--
球员编号:10
球员编号:11
球员编号:12
球员编号:13

总结

Set 集合是 Java 集合框架中的一种实现,它不允许包含重复的元素,每个元素在 Set 集合中都是唯一的。

Set 集合的特点如下:
常见的 Set 集合实现类如下:
通过下面的实例,我们回顾一下 Set 集合的常见用法,包括添加元素和遍历集合等操作:
import java.util.HashSet;

class Student {
    private int id;
    private String name;

   public Student(int id, String name) {
       this.id = id;
       this.name = name;
   }

   public int getId() {
       return id;
   }

   public String getName() {
       return name;
   }

   public void setName(String s) {
       this.name = s;
   }
}

public class Main {
    public static void main(String[] args) {
        HashSet<Student> studentSet = new HashSet<>();
        studentSet.add(new Student(101, "John"));
        studentSet.add(new Student(103, "Amy"));
        studentSet.add(new Student(102, "Mike"));

        for (Student student : studentSet) {
            System.out.println("学生 ID:" + student.getId() + ", 姓名:" + student.getName());
        }
    }
}
程序的运行结果如下:

学生 ID:101, 姓名:John
学生 ID:103, 姓名:Amy
学生 ID:102, 姓名:Mike

相关文章