当前位置:首页 > Java

java如何去重

2026-03-04 03:42:16Java

去除Java集合中的重复元素

使用HashSet可以快速去除重复元素,因为HashSet不允许重复值。将集合转换为HashSet后再转换回原类型即可去重。

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
Set<String> setWithoutDuplicates = new HashSet<>(listWithDuplicates);
List<String> listWithoutDuplicates = new ArrayList<>(setWithoutDuplicates);

使用Java 8 Stream去重

利用Streamdistinct()方法可以简洁地实现去重。

java如何去重

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
List<String> listWithoutDuplicates = listWithDuplicates.stream()
        .distinct()
        .collect(Collectors.toList());

保留原始顺序的去重方法

如果需要保留元素的原始顺序,可以使用LinkedHashSet代替HashSet

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
Set<String> setWithoutDuplicates = new LinkedHashSet<>(listWithDuplicates);
List<String> listWithoutDuplicates = new ArrayList<>(setWithoutDuplicates);

自定义对象的去重

对于自定义对象,需要重写equals()hashCode()方法,确保对象之间的比较逻辑正确。

java如何去重

class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

List<Person> people = Arrays.asList(new Person("Alice", 20), new Person("Bob", 25), new Person("Alice", 20));
List<Person> uniquePeople = people.stream()
        .distinct()
        .collect(Collectors.toList());

使用Apache Commons Collections去重

如果项目中已经引入了Apache Commons Collections库,可以使用CollectionUtilsremoveDuplicates方法。

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
CollectionUtils.removeDuplicates(listWithDuplicates);

使用Guava库去重

Guava库提供了ImmutableSet,可以方便地去除重复元素。

List<String> listWithDuplicates = Arrays.asList("a", "b", "a", "c");
List<String> listWithoutDuplicates = ImmutableSet.copyOf(listWithDuplicates).asList();

标签: 何去java
分享给朋友:

相关文章

如何编译java

如何编译java

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证是否安装成功。若未安装,需从Oracl…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

如何启用java

如何启用java

启用 Java 的方法 检查 Java 是否已安装 在命令行或终端输入 java -version,如果显示版本信息,说明 Java 已安装。若未安装,需从 Oracle 官网 或 OpenJDK 下…

java如何入门

java如何入门

学习基础语法 从Java的基础语法开始,包括变量、数据类型、运算符、控制结构(if-else、for循环、while循环)等。可以通过官方文档或入门教程学习。 安装开发环境 下载并安装JDK(J…

java 实现 php ord

java 实现 php ord

Java 实现 PHP 的 ord 函数 PHP 的 ord 函数用于获取字符串中第一个字符的 ASCII 值。在 Java 中,可以通过类型转换或直接使用字符的 Unicode 值实现类似功能。…

java如何

java如何

以下是针对Java常见需求的解决方案整理,以模块化方式呈现: 基础环境配置 下载JDK并配置环境变量,官网提供最新版本。验证安装使用命令 java -version。IDE推荐IntelliJ ID…