当前位置: 首页 > 图灵资讯 > 技术篇> java 8 集合对象求某个属性不重复的个数

java 8 集合对象求某个属性不重复的个数

来源:图灵教育
时间:2024-01-07 09:21:17

Java 8集合对象要求一个属性不重复的数字

在Java编程中,我们经常需要操作和处理集合对象。常见的需求之一是获得集合中某个属性的不重复数量。在Java 在8中,我们可以使用流(Stream)实现这一功能,简洁高效。

集合对象

首先,我们需要定义一个存储数据的集合对象。在这里,我们以学生对象为例,定义一个Student类别,包括学生的姓名和年龄属性。

public class Student {    private String name;    private int age;    public Student(String name, int age) {        this.name = name;        this.age = age;    }    // 省略getter和setter的方法
数据准备

为了方便演示,我们需要准备一些包含不同学生对象的测试数据。你可以创建一个List对象,并添加一些学生对象来实现。

List<Student> students = new ArrayList<>();students.add(new Student("Tom", 20));students.add(new Student("Jerry", 21));students.add(new Student("Tom", 22));students.add(new Student("Jerry", 23));students.add(new Student("Alice", 24));students.add(new Student("Bob", 25));students.add(new Student("Tom", 26));students.add(new Student("Jerry", 27));students.add(new Student("Alice", 28));students.add(new Student("Bob", 29));
Java 8流(Stream)

Java 8引入了流(Stream)集合对象的概念可以很容易地处理。我们可以使用它stream()该方法将集合转换为流,然后进行一系列操作。

获取不重复的数字

假设我们需要统计不重复学生姓名的数量。我们可以通过以下步骤来实现:

  1. List转换为流
  2. 使用map获取学生姓名属性的方法
  3. 使用distinct去除重复姓名的方法
  4. 使用count方法统计不重复姓名的数量

以下是完整的示例代码:

long count = students.stream()    .map(Student::getName)    .distinct()    .count();System.out.println("不重复的姓名数量:" + count);

上述代码将输出不重复的姓名数量。

类图

下面是Student类的类图:

classDiagram    Student : +String name    Student : +int age    Student : +Student(String name, int age)
总结

通过Java 8的流(Stream)特性,我们可以很容易地处理集合对象,并实现对某个属性的不重复数量的统计。上述示例代码显示了如何使用流量来获取学生对象中的不重复姓名。我希望这篇文章能帮助你学习Java的集合对象处理。