java中list对象可以使用contains去重 - 面试宝典

举报
皮牙子抓饭 发表于 2023/08/10 21:34:37 2023/08/10
【摘要】 在Java中,List对象是一个有序的集合,可以包含重复的元素。如果想要去重,可以使用List的contains方法来判断元素是否已经存在于List中。 具体的做法如下:创建一个新的List对象,用于存放去重后的元素。遍历原始的List对象,对于每一个元素,使用contains方法判断新List中是否已经存在该元素。如果新List中不存在该元素,则将该元素添加到新List中。最后,新List...

在Java中,List对象是一个有序的集合,可以包含重复的元素。如果想要去重,可以使用List的contains方法来判断元素是否已经存在于List中。 具体的做法如下:

  1. 创建一个新的List对象,用于存放去重后的元素。
  2. 遍历原始的List对象,对于每一个元素,使用contains方法判断新List中是否已经存在该元素。
  3. 如果新List中不存在该元素,则将该元素添加到新List中。
  4. 最后,新List中的元素就是去重后的结果。 示例代码如下:
javaCopy codeList<Object> originalList = new ArrayList<>(); // 原始的List对象
// 添加元素到originalList中(省略部分代码)
List<Object> distinctList = new ArrayList<>(); // 用于存放去重后的元素
for (Object element : originalList) {
    if (!distinctList.contains(element)) {
        distinctList.add(element);
    }
}
// 打印去重后的结果
for (Object element : distinctList) {
    System.out.println(element);
}

需要注意的是,List的contains方法会遍历整个List来寻找指定的元素,当List的元素较多时,这种方法的效率可能较低。如果对性能有较高要求,可以考虑使用HashSet或LinkedHashSet来进行去重操作。

当然,下面是一个示例代码,展示了如何使用HashSet来去重一个List对象:

javaCopy codeimport java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class ListDeduplicationExample {
    public static void main(String[] args) {
        List<String> originalList = new ArrayList<>();
        originalList.add("apple");
        originalList.add("banana");
        originalList.add("apple");
        originalList.add("orange");
        originalList.add("banana");
        List<String> distinctList = new ArrayList<>(new HashSet<>(originalList));
        System.out.println("Original List: " + originalList);
        System.out.println("Distinct List: " + distinctList);
    }
}

在这个示例中,我们首先创建了一个原始的List对象originalList,并向其中添加了一些重复的元素。然后,我们使用HashSet来去重这个List对象,HashSet会自动去除重复的元素。最后,我们将去重后的元素放入一个新的List对象distinctList中,并打印出原始List和去重后的List。 运行以上代码,输出结果如下:

plaintextCopy codeOriginal List: [apple, banana, apple, orange, banana]
Distinct List: [apple, banana, orange]

可以看到,去重后的List对象distinctList中只保留了一个apple、一个banana和一个orange。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。