专栏首页用户2442861的专栏List、Set、Map、数组之间各种转换

List、Set、Map、数组之间各种转换

刚学Java不久的时候,接到一个电面,然后问了一些java的知识,比如说Java的编码,Unicode等,但是最让我蛋疼的是怎么吗map转为set,那个时候对集合用的很少,对集合不是特别了解,map还知道,set就蒙了,然后转为set更蒙了,觉得应该有API提供吧,但是不知道怎么说。后来我一直下来再查这个问题,查到了,但是没有实践过,今天我就来一发代码。

List转Set                                                                                   

Set set = new HashSet(new ArrayList());

Set转List                                                                                   

List list = new ArrayList(new HashSet());

数组转为List                                                                                

List arr = Arrays.asList("1", "2", "3");
//或者
String[] arr = {"1", "2"};
List list = Arrays.asList(arr);

数组转为Set                                                                                 

int[] arr = { 1, 2, 3 };
Set set = new HashSet(Arrays.asList(arr));

Map的值转化为List                                                                      

List list = new ArrayList(map.values());

Map的值转化为Set                                                                       

Set set = new HashSet(map.values());

List转数组                                                                                   

List list = Arrays.asList("a","b");
String[] arr = (String[])list.toArray(new String[list.size()]);

代码                                                                                         

public class listsetmao {
    private static List<String> arrayList;
    private static Map<String, String> hashMap;
    private static Set<String> hashSet;
    private static String[] arr = {"11oneone","22twotwo"};
    public static void main(String[] args) {
        /*
         * //list转set initList(); Set<String> set = new
         * HashSet<String>(arrayList);
         * System.out.println("arrayList.toString()--->"+set.toString());
         * System.out.println("set.toString()--->"+set.toString());
         */
        /*
         * //set转list initSet(); List<String> list = new
         * ArrayList<String>(hashSet);
         * System.out.println("hashSet.toString()--->"+hashSet.toString());
         * System.out.println("list.toString()--->"+list.toString());
         */
        /*
        // 数组转为list
        List<String> list = Arrays.asList(arr);
        System.out.println("list.toString()--->"+list.toString());
        */
        /*
        //数组转set
        Set set = new HashSet<>(Arrays.asList(arr));
        System.out.println("set.toString()--->"+set.toString());
        */
        /*
        //map的值转为list
        initMap();
        List<String> list = new ArrayList<String>(hashMap.values());
        System.out.println("list.toString()--->"+list.toString());
        */
        /*
        //map的值转为set
        initMap();
        Set<String> set = new HashSet<String>(hashMap.values());
        System.out.println("set.toString()--->"+set.toString());
        */
        /*
        //map的key转为set
        initMap();
        Set<String> set = new HashSet<String>(hashMap.keySet());
        System.out.println("set.toString()--->"+set.toString());
        */
        //list转数组
        initList();
        String[] arr1 = (String[])arrayList.toArray(new String[arrayList.size()]);
        System.out.println("Arrays.toString(arr1)--->"+Arrays.toString(arr1));
    }
    public static void initList() {
        arrayList = new ArrayList<String>();
        arrayList.add("1");
        arrayList.add("2");
        arrayList.add("3");
        arrayList.add("4");
    }
    public static void initMap() {
        hashMap = new HashMap<String, String>();
        hashMap.put("one", "one1");
        hashMap.put("two", "two2");
        hashMap.put("three", "three3");
    }
    public static void initSet() {
        hashSet = new HashSet<String>();
        hashSet.add("1one");
        hashSet.add("2two");
        hashSet.add("3three");
        hashSet.add("4four");
        hashSet.add("5five");
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器

    http://blog.csdn.net/chjttony/article/details/7883748#comments

    bear_fish
  • java+内存分配及变量存储位置的区别

    Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细...

    bear_fish
  • Emmet for Dreamweaver:HTML/CSS代码快速编写神器

    Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码,大大提高了HTML...

    bear_fish
  • 目标检测第5步-使用keras版YOLOv3训练

    1.本文学习Patrick_Lxc的博客《Keras/Tensorflow+python+yolo3训练自己的数据集》并优化其中代码。 原博客链接:https...

    潇洒坤
  • 科学瞎想系列之四十七 时空穿越

    这个话题可能许多宝宝们都感兴趣,关于时空穿越的故事,宝宝们在科幻电影和小说里经常见到,好奇心驱使人们希望穿越到过去,利用自己已经知道的历史去给过去的人们指点...

    标准答案
  • 基于知识图谱的问答系统,BERT做命名实体识别和句子相似度

    了解知识图谱的基本概念,也做过一些demo的实践,毕竟是做问答方向的,所以就比较关注基于知识图谱的问答。其实构建知识图谱的核心在于命名实体识别和关系抽取,围绕这...

    机器学习AI算法工程
  • stellar 原

    Actions that change things in Stellar, like sending payments, changing your acco...

    wuweixiang
  • 十大科学突破预示科学发展三大趋势

    新华社华盛顿12月21日电(记者林小春)每到年底,国际科学界公认的权威刊物美国《科学》杂志都会评选十大科学突破,这不仅是对年度科技大事的年终盘点,从中更能看出近...

    企鹅号小编
  • Julia 的威胁,向 Python 宣战!

    近两年,凭借动态特性和易于扩展性,Python 在企业级应用程序、机器学习/人工智能模型、数据科学等工作中,备受开发者青睐,其火热程度早已超越了编程语言界的老牌...

    Python进击者
  • 开启Mac原生NTFS支持

    昨天买了一个西数移动硬盘,但是是ntfs格式的,由于我的是mac,所以需要借助第三方,或者开启Mac原生NTFS支持,于是就开始干起来:

    botkenni

扫码关注云+社区

领取腾讯云代金券