吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 896|回复: 5
收起左侧

[讨论] HashSet去重

[复制链接]
yuanyuanliya 发表于 2023-1-12 09:52
HashSet去重

public static void test3() {
    List<String> list = new ArrayList<>();
    list.add("29");
    list.add("29");
    list.add("29");
    list.add("12");
    list.add("14");
    list.add("16");
    list.add("20");

    HashSet lll = new HashSet(list);
    list.clear();
    list.addAll(lll);
    System.out.println("执行结果为:"+lll);

}原顺序被改变了?请教一下刷到的各位大佬,能否不改变原顺序呢?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

侃遍天下无二人 发表于 2023-1-12 11:18
用LinkedHashSet可以保证顺序不变,TreeSet可以保证按字典序排序
layuai 发表于 2023-1-12 14:04
杨辣子 发表于 2023-1-12 14:12
如果你是jdk1.8的话,可以用lambd表达式进行去重
List<String> distinctList = list.stream().distinct().collect(Collectors.toList());
System.out.println(distinctList);
bin2163239 发表于 2023-1-12 16:48
可以使用LinkedHashSet,它是HashSet的子类,它保留了添加元素的顺序:
public static void test3() {
    List<String> list = new ArrayList<>();
    list.add("29");
    list.add("29");
    list.add("29");
    list.add("12");
    list.add("14");
    list.add("16");
    list.add("20");

    LinkedHashSet lll = new LinkedHashSet(list);
    list.clear();
    list.addAll(lll);
    System.out.println("执行结果为:"+lll);

}
 楼主| yuanyuanliya 发表于 2023-1-13 09:58
bin2163239 发表于 2023-1-12 16:48
可以使用LinkedHashSet,它是HashSet的子类,它保留了添加元素的顺序:
public static void test3() {
   ...

执行完结果如图,麻烦帮忙看一下代码哪里写的有问题C:\Users\git\Pictures\去重结果.png
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 04:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表