java集合的相互转化(map,set,list,array)
项目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)相关推荐
- java集合课程,I学霸官方免费课程三十三:Java集合框架之Map集合
I学霸官方免费教程三十三:Java集合框架之Map集合 Map接口 Map集合采用键值对(key-value)的方式存储数据,其中键不可以重复.值可以重复. 常用类有HashMap.TreeMap和P ...
- java 集合之Interface Map<K,V> HashMap实现类
java 集合之Interface Map<K,V> 类型参数:K- 此映射所维护的键的类型:V- 映射值的类型 将键映射到值的对象. 一个映射不能包含重复的键: 每个键最多可以映射到一个 ...
- Java集合框架中Map接口的使用
在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...
- java集合框架07——Map架构与源代码分析
前几节我们对Collection以及Collection中的List部分进行了分析,Collection中还有个Set,因为Set是基于Map实现的,所以这里我们先分析Map,后面章节再继续学习Set ...
- (Java集合框架)Map集合
Map集合 概述 现实生活中,常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对象 ...
- Java集合篇:Map总结
相关阅读: Java基础篇:hashCode的作用 Java集合篇:HashMap原理详解(JDK1.7及之前的版本) Java集合篇:HashMap原理详解(JDK1.8) Java集合篇:Hash ...
- java 先进先出的map_「 深入浅出 」java集合Collection和Map
本系列文章主要对java集合的框架进行一个深入浅出的介绍,使大家对java集合有个深入的理解. 本篇文章主要具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set ...
- Java集合查找Map,Java集合框架中Map接口的使用
在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...
- java集合(List,Set,Map)详细总结
一,集合的由来: 数组是长度是固定的,当添加的元素超过数组的长度时需要对数组重新定义,太麻烦了,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而 ...
- list和map用法java,java 集合list和map的用法
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Li ...
最新文章
- SpringBoot笔记一
- linux开机关机命令
- vuecli3的svgicon_vue-cli3引入svg图标全过程以及遇到的坑
- 编译安装 PHP 扩展 - 含 swoole 扩展安装和升级
- centos安装mysql 简书_在centos上安装mysql
- 跨平台RTSP/RTMP转RTMP转发SDK
- python自动输入_使用Python和pywin32自动输入数据
- Spring AOP是什么?
- MongoDB分布式集群分片
- ethtool 原理介绍和解决网卡丢包排查思路(附ethtool源码下载)
- ELK + kafka 分布式日志解决方案
- sql server 配置管理器里为什么是32位_FT VIEW | SE高级应用之数据存入SQL数据库
- stm32 红外遥控实现
- 曲面上的测地线 MATLAB,§6曲面上的测地线.PDF
- 易快报打印提示Adobe pdf窗口:无法在安装位置中找到为在浏览器中查看pdf文档
- MCU】可怕,别人把我MCU固件给反汇编了!(逆向)J-FLASH通过下面的选项路径,即可读取所选Flash区域或者所有Flash区域(Entire Chip)安装IDA Pro逆向工具
- 当360屠榜黑客奥斯卡,我们为什么要关注国家级网络安全战?
- #bfs#[luogu 2873] [USACO07DEC]泥水坑Mud Puddles
- 云原生数据库 Amazon DynamoDB 十年创新回顾
- hdwiki 附件上传大小设置
热门文章
- [BZOJ] 1040: [ZJOI2008]骑士
- MySQL字符集设置及字符转换(latin1转utf8)
- paip.微信菜单直接跳转url和获取openid流程总结
- linux mint 向“显示(display)”面板添加没有提供的分辨率选项,使虚拟机中的linux mint可以全屏显示...
- 【Ubuntu^Java】Ubuntu下JDK环境变量的配置
- Excel 取消身份证的科学计数法显示形式
- RESTful API 设计规范
- 沈阳自贸区促先进制造业发展 企业可获奖千万元
- TFS源代码管理的8大注意事项
- canvas绘制经典星空连线效果