legongju.com
我们一直在努力
2025-01-06 18:35 | 星期一

Java set去重怎样达成

在Java中,可以使用Set集合来存储不重复的元素。Set接口的实现类有很多,如HashSet、LinkedHashSet和TreeSet等。这里以HashSet为例,介绍如何实现去重。

假设我们有一个类Person,包含nameage两个属性:

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getter和setter方法
    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

现在,我们想要去除一个Person对象列表中的重复元素,可以使用HashSet来实现:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        List personList = new ArrayList<>();
        personList.add(new Person("张三", 20));
        personList.add(new Person("李四", 25));
        personList.add(new Person("张三", 20)); // 重复的元素
        personList.add(new Person("王五", 30));

        Set personSet = new HashSet<>(personList);
        List uniquePersonList = new ArrayList<>(personSet);

        for (Person person : uniquePersonList) {
            System.out.println(person.getName() + " - " + person.getAge());
        }
    }
}

在这个例子中,我们首先创建了一个Person对象列表personList,然后使用HashSet的构造函数将列表转换为一个Set集合personSet。由于HashSet不允许重复元素,所以重复的Person对象会被自动去除。最后,我们将personSet转换回ArrayList,得到一个去除重复元素后的列表uniquePersonList

未经允许不得转载 » 本文链接:https://www.legongju.com/article/54631.html

相关推荐

  • java怎么定义一个常量

    java怎么定义一个常量

    在Java中,可以使用final关键字来定义一个常量。常量是指在程序运行过程中值不会改变的变量。以下是如何定义一个常量的示例:
    public class MyClass { // 定...

  • java中的多态是什么

    java中的多态是什么

    在Java中,多态(Polymorphism)是面向对象编程的一个重要特性,它允许一个类的引用变量指向该类的任何子类的实例。多态提供了一种灵活的结构,使得代码可以更加...

  • java接口中如何定义常量

    java接口中如何定义常量

    在Java接口中,可以直接定义常量,不需要使用static final关键字。因为接口中的所有变量默认都是public static final的。下面是一个示例:
    public interfac...

  • java如何实现拓扑图

    java如何实现拓扑图

    在Java中,实现拓扑图可以通过使用邻接表或邻接矩阵来表示图。这里我将给出一个使用邻接表实现的简单示例。拓扑图是有向无环图(Directed Acyclic Graph,简称DA...

  • Java反编译命令技巧在哪

    Java反编译命令技巧在哪

    Java反编译命令主要用于将编译后的Java字节码(.class文件)转换回源代码(.java文件),以便于理解和分析。以下是一些Java反编译命令的使用技巧及相关信息:

  • Java反编译命令作用在哪

    Java反编译命令作用在哪

    Java反编译命令主要用于将编译后的Java字节码(.class文件)转换回Java源代码(.java文件),这一过程在多个场景中都非常有用。以下是Java反编译命令的作用与使用...

  • C++ ifndef使用场景在哪

    C++ ifndef使用场景在哪

    ifndef 是 C++ 中预处理器的一个指令,用于防止头文件被多次包含。它的使用场景主要包括以下几点: 避免重复包含:当一个头文件被多次包含时,它的内容会被多次复...

  • C++ ifndef与其他指令有何不同

    C++ ifndef与其他指令有何不同

    在C++中,ifndef是一个预处理指令,用于防止头文件被多次包含
    ifndef与其他预处理指令的主要区别在于其用途和工作方式。下面是一些常见的预处理指令及其用途...