Set与List转换

set集合元素唯一,无序;list集合元素可以重复,有序。

1、set转list:数据保持不变,顺序发生变化,可以使用Collections.sort进行排序(Collections.shuffle 随机排序,Collections.reverse 反转顺序)。

2、list转set:去除重复数据,只保留一个。转成linkedHashSet时,原顺序不变;转成treeSet可以排序,转成hashSet无序。

package set;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.Vector;

public class ReverseLinkedHashSet {

    public static void main(String args[]){
        testSetConvertList();
        testListConvertSet();
    }
    static void testSetConvertList(){
        Set<Integer> hashSet = new HashSet<Integer>();
        Set<Integer> linkedHashSet = new LinkedHashSet<Integer>();
        for(int i=1 ;i<20;i++){
            hashSet.add(i);
            linkedHashSet.add(i);
        }
        System.out.println("hashSet: "+hashSet);
        System.out.println("linkedHashSet: "+linkedHashSet);
        List<Integer> hashSetList = new ArrayList<Integer>(hashSet);
        List<Integer> linkedHashSetList = new ArrayList<Integer>(linkedHashSet);
        System.out.println("hashSet转list集合: "+hashSetList);
        System.out.println("linkedHashSet转list集合: "+linkedHashSetList);
        Collections.reverse(linkedHashSetList);
        System.out.println("反转排序linkedHashSetList集合: "+linkedHashSetList);
    }
    
    @SuppressWarnings("serial")
    static void testListConvertSet(){
        List<Integer> vector = new Vector<Integer>();
        List<Integer> linkedList = new LinkedList<Integer>();
        List<Integer> dataList1 = new LinkedList<Integer>(){{add(1);add(2);add(2);add(4);add(5);}};
        List<Integer> dataList2 = new LinkedList<Integer>(){{add(7);add(6);add(16);add(17);add(18);add(19);add(19);}};
        List<Integer> dataList3 = new LinkedList<Integer>(){{add(11);add(12);add(13);add(14);add(15);}};
        
        vector.addAll(dataList1);
        vector.addAll(dataList2);
        vector.addAll(dataList3);
        linkedList.addAll(dataList1);
        linkedList.addAll(dataList2);
        linkedList.addAll(dataList3);
        System.out.println("vector: "+vector);
        System.out.println("linkedList: "+linkedList);
        Collections.sort(vector);
        System.out.println("排序vector: "+vector);
        Collections.shuffle(vector);
        System.out.println("随机排序vector: "+vector);
        Collections.sort(vector);
        System.out.println("排序vector: "+vector);
        Collections.reverse(vector);
        System.out.println("反转排序vector: "+vector);
        Set<Integer> hashSet = new HashSet<Integer>(linkedList);
        Set<Integer> linkedSet = new LinkedHashSet<Integer>(linkedList);
        System.out.println("hashSet: "+hashSet);
        System.out.println("linkedSet: "+linkedSet);
    }
}

 

 

转载于:https://www.cnblogs.com/wcj112/p/3580699.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值