set和list转换_list和set

set和list转换_list和setset集合元素唯一,无序;list集合元素可以重复,有序。1、set转list:数据保持不变,顺序发生变化,可以使用Collections.sort进行排序(Collections.shuffle随机排序,Collections.reverse反转顺序)。2、list转set:去除重复数据,只保留一个。转成linkedHashSet时,原顺序不变;转成treeSet可以排序

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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://javaforall.net/183496.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • redis集群主从复制原理_主从关系紫音

    redis集群主从复制原理_主从关系紫音Redis主从复制主从复制简介主从复制的概念主从复制的作用主从复制工作流程阶段一:建立连接阶段主从连接(slave连接master)第一种方式第二种方式第三种方式授权访问阶段二:数据同步阶段工作流程数据同步阶段master说明数据同步阶段slave说明阶段三:命令传播阶段命令传播阶段的部分复制服务器的运行id复制缓冲区复制缓冲区内部工作原理复制缓冲区主从服务器复制偏移量(offset)数据同步+命令传播阶段工作流程心跳机制心跳阶段注意事项主从复制常见问题引发频繁的全量复制1引发频繁的全量复制2频繁的网络中

    2022年8月13日
    5
  • 数组使用arrays.aslist转化为集合_int数组转list集合

    数组使用arrays.aslist转化为集合_int数组转list集合intarr[]={3,5,7};//toString(int[]a)返回指定数组内容的字符串表示形式。System.out.println(Arrays.toString(arr));//[3,5,7]

    2022年9月19日
    0
  • 5个Web前端开发软件,零基础入门完全够用了!

    对于刚刚入行不久的Web前端编程小白来说,在开发工具的选择方面或许会显得有些力不从心,毕竟网络上众说纷纭,相关的开发工具也是非常之多,以至于许多小伙伴一时不知道从何下手。为了解决这个问题,今天就为大家介绍几个不错的开发工具,感兴趣的朋友可以自己尝试一下:1、Notepad++这个软件就不多说了,记事本的增强版,主要应用在Windows平台下,大部分人都应该使用过,非常轻巧灵活,运行速度快,支持多窗口切换,可编辑语言也非常多,自动补全、语法提示和检查等功能都不错,对于前端开发入门来说,可以作为一个不错的选

    2022年4月9日
    51
  • 暴力激活成功教程字典及字典生成器[通俗易懂]

    暴力激活成功教程字典及字典生成器[通俗易懂]GitHub上的:https://github.com/danielmiessler/SecLists/tree/master/Passwords/Leaked-Databaseshttps://

    2022年8月4日
    4
  • 解释型语言与编译型语言的区别?_编译型语言和解释型语言的优缺点

    解释型语言与编译型语言的区别?_编译型语言和解释型语言的优缺点编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。C/

    2022年8月1日
    3
  • 排列组合c怎么算_希尔排序与初始状态有关吗

    排列组合c怎么算_希尔排序与初始状态有关吗P1030求先序排列

    2022年4月20日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号