JAVA数组与List相互转换
1.数组转成List
数组转成List可以用方法 :Arrays.asList,一起来了解一下
System.out.println(Arrays.asList(new String[] { "a", "b" }));
打印:[a, b]
List<Integer> asList2 = Arrays.asList(new Integer[] { 1, 2 });
System.out.println(asList2);
打印:[1, 2]
以下会得到非预期的结果
List<int[]> asList = Arrays.asList(new int[] { 1, 2 });
System.out.println(asList);
打印:[[I@4e25154f]
如果你打算将一个基本类型的数组转换为所对应的封装类型的list,使用Apache Commons Lang吧,可能你的项目正在使用它,类似下面这样使用ArrayUtils.toObject:
List<Integer> list = Arrays.asList(ArrayUtils.toObject(new int[] { 1, 2 }));
System.out.println(list);
打印:[1, 2]
注意使用工具类Arrays.asList()把数组转成集合时,不能使用其修改集合的相关方法,它的add/remove/clear方法会抛出java.lang.UnsupportedOperationException异常。asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法,后台的数据仍是数组,对数组的修改会影响到集合:
String[] countries = { "China", "Russia", "American" };
List<String> asList3 = Arrays.asList(countries);
countries[2] = "France";
System.out.println(asList3);
打印:[China, Russia, France]
2.List转成数组
而List转成数组可以list的toArray(T[] array)方法,传入类型完全一样的数组,数组的大小传list.size()。
List<String> fruits = new ArrayList<String>();
fruits.add("Apple");
fruits.add("Pear");
fruits.add("Orange");
String[] array = fruits.toArray(new String[fruits.size()]);
JAVA数组与List相互转换的更多相关文章
- java数组与字符串相互转换、整型与字符串相互转换【详解】
java 数组->字符串 1.char数组(字符数组)->字符串 可以通过:使用String.copyValueOf(charArray)函数实现. 举例: char[] arr={ ...
- java数组和字符串相互转换
将字符串变成数组 Java.lang包中有String.split()方法,java中通常用split()分割字符串,返回的是一个数组. 特殊,转义字符,必须加"\\"(“.”和“ ...
- json相关类库,java对象与json相互转换
有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...
- java对象与xml相互转换 ---- xstream
XStream是一个Java对象和XML相互转换的工具,很好很强大.提供了所有的基础类型.数组.集合等类型直接转换的支持. XStream中的核心类就是XStream类,一般来说,熟悉这个类基本就够用 ...
- Java 数组
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...
- 第5章 Java数组
1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...
- Java 数组基础
数组 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int ...
- Java数组及其内存分配
几乎所有的程序设计语言都支持数组.Java也不例外.当我们需要多个类型相同的变量的时候,就考虑定义一个数组.在Java中,数组变量是引用类型的变量,同时因为Java是典型的静态语言,因此它的数组也是静 ...
- [转载]Java数组扩容算法及Java对它的应用
原文链接:http://www.cnblogs.com/gw811/archive/2012/10/07/2714252.html Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组 ...
随机推荐
- hdu-6437-最大费用流
Problem L.Videos Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- Leetcode 124 *
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...
- Hadoop---hu-hadoop1: mv: cannot stat `/home/bigdata/hadoop-2.6.0/logs/hadoop-root-datanode-hu-hadoop1.out.4': No such file or directory
hu-hadoop1: mv: cannot stat `/home/bigdata/hadoop-2.6.0/logs/hadoop-root-datanode-hu-hadoop1.out.4': ...
- CAD插入块后坐标不匹配
有两张图,将一张图复制(CTRL+V),再另一张图中粘贴到原坐标(pasteorig),两张图可以很好匹配,但将一张图以外部参照的方式插入另一张图却发现图形无法匹配.因为没有看到图纸,所以我也没法准确 ...
- js中用来操作数组的相关的方法
push向数组的的末尾添加新的内容 unshift向数组的开头增加新的内容 slice(n,m)从索引n开始(包含n),找到索引m处(不包含m),然后把找到的内容作为一个新的数组返回,原有的数组不改变 ...
- java redis client jedis 测试及常用命令
package cn.byref.demo1; import java.util.HashMap;import java.util.List;import java.util.Map;import j ...
- /etc/profile、~/.bash_profile、~/.bashrc和/etc/bashrc
文件 引用关系 执行时间 影响用户 使用场景 /etc/profile 开机执行 所有用户 所有用户.重启生效 ~/.bash_profile 引用~/.bashrc 用户登录时执行 当前用户 当 ...
- Springboot+Mybatis批量导入多条数据
在Mapper.xml最下面填写 <!-- 批量插入生成的兑换码 --> <insert id ="insertCodeBatch" parameterType= ...
- Python 自然语言处理笔记(一)
一. NLTK的几个常用函数 1. Concordance 实例如下: >>> text1.concordance("monstrous") Displaying ...
- Win10系列:UWP界面布局基础2
属性设置 在面向对象程序开发中,所提及的属性通常指的是对象的属性.在XAML代码中,定义元素时也可以为其设置属性,例如对于一个TextBox元素,有背景属性.宽度属性和高度属性等.为了满足实际应用的需 ...