java 数组转list asList用法
2024-09-01 04:36:21
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 ] UnsupportedOperationException UnsupportedOperationException |
最新文章
- IOS之Objective-C学习 代理设计模式
- Java 抓取网页中的内容【持续更新】
- 剑指Offer面试题:22.二叉搜索树的后序遍历序列
- ReSharper 配置及用法
- 【Swift学习】Swift编程之旅---闭包(十一)
- Grunt-cli的执行过程以及Grunt加载原理
- 常见设计模式的解析和实现(C++)之九—Decorator模式
- 简单的web三层架构系统【第五版】
- 一键搜索之Win10锁屏壁纸
- MPQ Storm库 源代码分析 一个
- 有趣Web之Json(四)---json与(Object/List/Map)相互转化
- 使用URLConnection调用axis1.4开发的webservice
- js之单例模式
- 使用kubeadm安装kubenetes
- 【css】适配iphoneX
- 使用jQuery和CSS3实现一个数字时钟
- [C++]指针与多级指针(图解)
- CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解
- KNN手写实践:Python基于数据集整体计算以及排序
- html中表单的应用
热门文章
- 继承以及Super
- 【HANA系列】SAP HANA SQL获取字符串长度
- MATLAB灰色关联度分析
- Spring是什么? 什么是IOC(Inversin of control)? 什么是AOP (Aspect-Oriented Programming)?
- (转)arcengine+c# 修改存储在文件地理数据库中的ITable类型的表格中的某一列数据,逐行修改。更新属性表、修改属性表某列的值。
- Linux批量文件管理
- C#实现多线程的方式:使用Parallel类
- 【python基础学习】---解析多层json,解析xml
- 中国高考志愿填报与职业趋势分析 - ActiveReports 大数据分析报告
- 使用php过滤emoji表情