Java List集合去重,排序 最简便的方法

2 篇文章 0 订阅
1 篇文章 0 订阅

由于List元素可以重复,去重用循环很low,但由于Set是不可重复的,所以可借用set进行去重



        /**
         * list1 -- 未去重的集合
         * list2 -- 去重后的集合
         * 
         * */
        
        
        List<String> list1 = new ArrayList<String>();
        list1.add("11");
        list1.add("22");
        list1.add("33");
        list1.add("44");
        list1.add("33");
        list1.add("12");
        
        System.out.println(list1);
        
        List<String> list2 = new ArrayList<>(new HashSet<String>(list1));//去重后的集合
        
        Collections.sort(list2);//排序
        System.out.println(list2);
        
        Collections.reverse(list2);//倒序排序
        System.out.println(list2);
        
        
        


输出:

[11, 22, 33, 44, 33, 12]
[11, 12, 22, 33, 44]
[44, 33, 22, 12, 11]
 

Java语言中,可以使用Set集合的特性来对List集合进行去重操作。一种常见的方法是将List集合中的元素放入Set集合中,然后再将Set集合转回List集合。这样可以利用Set的无序且不可重复的特性来去除重复元素。以下是一个示例代码: ```java List<String> list = new LinkedList<>(); list.add("22"); list.add("11"); list.add("33"); list.add("66"); list.add("22"); Set<String> set = new HashSet<>(list); List<String> result = new LinkedList<>(set); System.out.println("去重后的集合:" + result); ``` 另外,如果你希望保持原来插入时的顺序,可以使用LinkedHashSet集合来进行去重操作。LinkedHashSet可以保持元素插入的顺序,但不能对数据进行排序。以下是一个示例代码: ```java List<String> list = new LinkedList<>(); list.add("22"); list.add("11"); list.add("33"); list.add("66"); list.add("22"); LinkedHashSet<String> set = new LinkedHashSet<>(list); List<String> result = new LinkedList<>(set); System.out.println("去重后的集合:" + result); ``` 如果你希望对元素进行排序,可以使用TreeSet集合。TreeSet可以按照字典顺序对元素进行排序。以下是一个示例代码: ```java List<String> list = new LinkedList<>(); list.add("22"); list.add("11"); list.add("33"); list.add("66"); list.add("22"); TreeSet<String> set = new TreeSet<>(list); List<String> result = new LinkedList<>(set); System.out.println("去重后的集合:" + result); ``` 希望这些代码可以帮助到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值