java 数组转list asList用法
https://www.cnblogs.com/zheyangsan/p/6910476.html
java中数组转list使用Arrays.asList(T... a)方法。
示例:
public class App {
public static void main(String[] args) {
List<String> stringA = Arrays.asList("hello", "world","A");
String[] stringArray = {"hello","world","B"};
List<String> stringB = Arrays.asList(stringArray);
System.out.println(stringA);
System.out.println(stringB);
}
}
运行结果:
1
2
[hello, world, A]
[hello, world, B]
这个方法使用起来非常方便,简单易懂。但是需要注意以下两点。
一、不能把基本数据类型转化为列表
仔细观察可以发现asList接受的参数是一个泛型的变长参数,而基本数据类型是无法泛型化的,如下所示:
public class App {
public static void main(String[] args) {
int[] intarray = {1, 2, 3, 4, 5};
//List<Integer> list = Arrays.asList(intarray); 编译通不过
List<int[]> list = Arrays.asList(intarray);
System.out.println(list);
}
}
output:
[[I@66d3c617]
这是因为把int类型的数组当参数了,所以转换后的列表就只包含一个int[]元素。
解决方案:
要想把基本数据类型的数组转化为其包装类型的list,可以使用guava类库的工具方法,示例如下:
int[] intArray = {1, 2, 3, 4};
List<Integer> list = Ints.asList(intArray);
二、asList方法返回的是数组的一个视图
视图意味着,对这个list的操作都会反映在原数组上,而且这个list是定长的,不支持add、remove等改变长度的方法。
public class App {
public static void main(String[] args) {
int[] intArray = {1, 2, 3, 4};
List<Integer> list = Ints.asList(intArray);
list.set(0, 100);
System.out.println(Arrays.toString(intArray));
list.add(5);
list.remove(0);
}
}
output:
[100, 2, 3, 4]
UnsupportedOperationException
UnsupportedOperationException
java中数组转list使用Arrays.asList(T... a)方法。
示例:
|
1
2
3
4
5
6
7
8
9
10
|
public class App { public static void main(String[] args) { List<String> stringA = Arrays.asList("hello", "world","A"); String[] stringArray = {"hello","world","B"}; List<String> stringB = Arrays.asList(stringArray); System.out.println(stringA); System.out.println(stringB); }} |
运行结果:
|
1
2
|
[hello, world, A][hello, world, B] |
这个方法使用起来非常方便,简单易懂。但是需要注意以下两点。
一、不能把基本数据类型转化为列表
仔细观察可以发现asList接受的参数是一个泛型的变长参数,而基本数据类型是无法泛型化的,如下所示:
|
1
2
3
4
5
6
7
8
9
10
11
|
public class App { public static void main(String[] args) { int[] intarray = {1, 2, 3, 4, 5}; //List<Integer> list = Arrays.asList(intarray); 编译通不过 List<int[]> list = Arrays.asList(intarray); System.out.println(list); }}output:[[I@66d3c617] |
这是因为把int类型的数组当参数了,所以转换后的列表就只包含一个int[]元素。
解决方案:
要想把基本数据类型的数组转化为其包装类型的list,可以使用guava类库的工具方法,示例如下:
|
1
2
|
int[] intArray = {1, 2, 3, 4};List<Integer> list = Ints.asList(intArray); |
二、asList方法返回的是数组的一个视图
视图意味着,对这个list的操作都会反映在原数组上,而且这个list是定长的,不支持add、remove等改变长度的方法。
|
1
2
3
4
5
6
7
8
9
10
11
|
public class App { public static void main(String[] args) { int[] intArray = {1, 2, 3, 4}; List<Integer> list = Ints.asList(intArray); list.set(0, 100); System.out.println(Arrays.toString(intArray)); list.add(5); list.remove(0); }} |
output:
|
1
2
3
|
[100, 2, 3, 4]UnsupportedOperationExceptionUnsupportedOperationException |
java 数组转list asList用法的更多相关文章
- JAVA数组的定义及用法
数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素. 1. 一维数组 1.1 一维数组的定义 type arrayName[]; type[] arrayName; ...
- Java数组转集合之Arrays.asList()用法
Arrays.asList()用法 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计 ...
- java Arrays.asList用法
java Arrays.asList用法 用途 Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁. 注意 Arrays.asLi ...
- Java数组操作方法收集(快速判断某个值在这个数组中)
Java数组操作最高效的方式是循环取值,如果转换成集合那么就会分配内存,效率不如前者,但是方法多,需要在性能调优上去权衡.切记:数组是数组,集合是集合. 下面是收集最常用的数组转成集合的操作方法: i ...
- Java-杂项:Java数组Array和集合List、Set、Map
ylbtech-Java-杂项:Java数组Array和集合List.Set.Map 1.返回顶部 1. 之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊 ...
- Arrays.asList()用法梳理
Arrays.asList()用法梳理 asList概述 Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁. asList本质 ...
- Java 数组最佳指南,快收藏让它吃灰
两年前,我甚至写过一篇文章,吐槽数组在 Java 中挺鸡肋的,因为有 List 谁用数组啊,现在想想那时候的自己好幼稚,好可笑.因为我只看到了表面现象,实际上呢,List 的内部仍然是通过数组实现的, ...
- Java中stream的详细用法
来自于:Java 8 stream的详细用法_旅行者-CSDN博客_java stream 一.概述 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行 ...
- Java数组技巧攻略
Java数组技巧攻略 0. 声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {" ...
随机推荐
- VS2015服务器资源管理器连接Mysql数据库
下载安装文件mysql-for-visualstudio-1.2.3.msi 下载成功后执行安装,选择change-->选择Custom安装成功后,发现vs中没有效果. 注意这里再次执行安装文件 ...
- .NET制作滚动条
今天,在工作的时候,刚好做到了滚动条,对这点不是很懂,所以,研究了一下,记录在这里,与大家分享. 对于前台页面,我们就只需要设置数据表的样式:style="overflow: auto; 即 ...
- go切片展开
可以使用 ... 操作符将一个切片追加到另一个切片末尾: package main import ( "fmt" ) func main() { veggies := []stri ...
- Spring中重要的注解
现在大部分的Spring项目都会用到注解.使用注解来替换xml,一行简单的注解就可以解决很多事情.但是你真的懂其中的原理吗. 本文翻译于 https://docs.spring.io/spring-f ...
- meta viewport移动端自适应
参考链接:https://www.jianshu.com/p/561357d7cd7b
- 搭建elk集群 disabled in libcurl elasticsearch-6.2.2 更新license 版本
0.logstash的部分配置 output { stdout {codec => rubydebug} elasticsearch { hosts => ["172.31.25 ...
- 解决android studio的Gradle一直在sync的办法
出现问题的原因就是gradle下载太慢了. 打开gradle-wrapper.properties文件.查看gradle版本.如下: distributionUrl=https\://services ...
- 【CSP模拟】小凯的疑惑(DP)
首先,这道题正解的思路是从subtask2而得来的,所以先讲一下subtask2的做法. 因为保证答案不超过long long,所以直接求最大权独立集即可:dp[u][0]表示u点一定不能取的答案,d ...
- PTA(Basic Level)1053.住房空置率
在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为"可能空置&quo ...
- [转帖]看完这篇文章,我奶奶都懂了https的原理
看完这篇文章,我奶奶都懂了https的原理 http://www.17coding.info/article/22 非对称算法 以及 CA证书 公钥 核心是 大的质数不一分解 还有 就是 椭圆曲线算法 ...