项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

1.应用场景

java中有丰富的集合类,日常开发中几乎时刻需要使用到各种各样的集合类,其中常用的集合类包括有Map,Set,List,Array等等。下面我们就来针对各个集合类的相互转化做一下总结。

2.实测代码

二话不说,直接上代码。

import org.junit.Test;import java.util.*;/*** Created by WangLei on 17-12-18.*/
public class CollectionsTest {Map<String, Integer> map = new HashMap<String, Integer>() {{put("a", 1);put("b", 2);put("c", 3);}};Set<String> set = new HashSet() {{add("a");add("b");add("c");}};List<String> list = new ArrayList() {{add("a");add("b");add("c");}};String[] arr = {"a", "b", "c"};@Testpublic void map2List() {List<String> keyList = new ArrayList(map.keySet());System.out.println("keyList is: " + keyList);//ArrayList有如下构造方法:public ArrayList(Collection<? extends E> c)List<String> valueList = new ArrayList(map.values());System.out.println("valueList is: " + valueList);}@Testpublic void map2set() {Set<String> keySet = map.keySet();//HashSet有如下构造方法:public HashSet(Collection<? extends E> c)Set<String> valueSet = new HashSet(map.values());System.out.println("valueSet is: " + valueSet);}@Testpublic void arrayset() {// array -> setSet<String> set = new HashSet(Arrays.asList(arr));System.out.println("set is: " + set);//set -> arrayString[] resultArray = set.toArray(new String[set.size()]);Arrays.stream(resultArray).forEach(x -> System.out.print(x + " "));}@Testpublic void listset() {// list -> setSet<String> resultset = new HashSet<>(list);System.out.println("result set is: " + resultset);// set -> listList<String> resultlist = new ArrayList(set);System.out.println("result list is: " + resultlist);}@Testpublic void listarray() {// list -> arrayString[] resultarray = list.toArray(new String[list.size()]);// array -> listList<String> resultlist = Arrays.asList(arr);}
}

代码中方法的名称就表示了该方法的用途,就不一一解释了。

##3.几个注意的小点
1.ArrayList,HashSet等集合类都有public ArrayList(Collection<? extends E> c)这种形式的构造方法,可以传一个集合进来初始化。
2.Set,List等接口都有toArray方法,源码如下:

<T> T[] toArray(T[] a);

2.Arrays.asList方法的源码如下:

    public static <T> List<T> asList(T... a) {return new ArrayList<>(a);}

可以直接将数组变为一个ArrayList

java集合的相互转化(map,set,list,array)相关推荐

  1. java集合课程,I学霸官方免费课程三十三:Java集合框架之Map集合

    I学霸官方免费教程三十三:Java集合框架之Map集合 Map接口 Map集合采用键值对(key-value)的方式存储数据,其中键不可以重复.值可以重复. 常用类有HashMap.TreeMap和P ...

  2. java 集合之Interface Map<K,V> HashMap实现类

    java 集合之Interface Map<K,V> 类型参数:K- 此映射所维护的键的类型:V- 映射值的类型 将键映射到值的对象. 一个映射不能包含重复的键: 每个键最多可以映射到一个 ...

  3. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  4. java集合框架07——Map架构与源代码分析

    前几节我们对Collection以及Collection中的List部分进行了分析,Collection中还有个Set,因为Set是基于Map实现的,所以这里我们先分析Map,后面章节再继续学习Set ...

  5. (Java集合框架)Map集合

    Map集合 概述 现实生活中,常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对象 ...

  6. Java集合篇:Map总结

    相关阅读: Java基础篇:hashCode的作用 Java集合篇:HashMap原理详解(JDK1.7及之前的版本) Java集合篇:HashMap原理详解(JDK1.8) Java集合篇:Hash ...

  7. java 先进先出的map_「 深入浅出 」java集合Collection和Map

    本系列文章主要对java集合的框架进行一个深入浅出的介绍,使大家对java集合有个深入的理解. 本篇文章主要具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set ...

  8. Java集合查找Map,Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  9. java集合(List,Set,Map)详细总结

    一,集合的由来: 数组是长度是固定的,当添加的元素超过数组的长度时需要对数组重新定义,太麻烦了,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而 ...

  10. list和map用法java,java 集合list和map的用法

    import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Li ...

最新文章

  1. SpringBoot笔记一
  2. linux开机关机命令
  3. vuecli3的svgicon_vue-cli3引入svg图标全过程以及遇到的坑
  4. 编译安装 PHP 扩展 - 含 swoole 扩展安装和升级
  5. centos安装mysql 简书_在centos上安装mysql
  6. 跨平台RTSP/RTMP转RTMP转发SDK
  7. python自动输入_使用Python和pywin32自动输入数据
  8. Spring AOP是什么?
  9. MongoDB分布式集群分片
  10. ethtool 原理介绍和解决网卡丢包排查思路(附ethtool源码下载)
  11. ELK + kafka 分布式日志解决方案
  12. sql server 配置管理器里为什么是32位_FT VIEW | SE高级应用之数据存入SQL数据库
  13. stm32 红外遥控实现
  14. 曲面上的测地线 MATLAB,§6曲面上的测地线.PDF
  15. 易快报打印提示Adobe pdf窗口:无法在安装位置中找到为在浏览器中查看pdf文档
  16. MCU】可怕,别人把我MCU固件给反汇编了!(逆向)J-FLASH通过下面的选项路径,即可读取所选Flash区域或者所有Flash区域(Entire Chip)安装IDA Pro逆向工具
  17. 当360屠榜黑客奥斯卡,我们为什么要关注国家级网络安全战?
  18. #bfs#[luogu 2873] [USACO07DEC]泥水坑Mud Puddles
  19. 云原生数据库 Amazon DynamoDB 十年创新回顾
  20. hdwiki 附件上传大小设置

热门文章

  1. [BZOJ] 1040: [ZJOI2008]骑士
  2. MySQL字符集设置及字符转换(latin1转utf8)
  3. paip.微信菜单直接跳转url和获取openid流程总结
  4. linux mint 向“显示(display)”面板添加没有提供的分辨率选项,使虚拟机中的linux mint可以全屏显示...
  5. 【Ubuntu^Java】Ubuntu下JDK环境变量的配置
  6. Excel 取消身份证的科学计数法显示形式
  7. RESTful API 设计规范
  8. 沈阳自贸区促先进制造业发展 企业可获奖千万元
  9. TFS源代码管理的8大注意事项
  10. canvas绘制经典星空连线效果