java arrays.aslist()_Java中Arrays.asList()方法详解及实例
Arrays.asList() 是将数组作为列表。
问题来源于:
public class Test {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4};
List list = Arrays.asList(a);
System.out.println(list.size()); //1
}
}
期望的输出是 list 里面也有4个元素,也就是 size 为4,然而结果是1。
原因如下:
在 Arrays.asList 中,该方法接受一个变长参数,一般可看做数组参数,但是因为 int[] 本身就是一个类型,所以 a 变量作为参数传递时,编译器认为只传了一个变量,这个变量的类型是 int 数组,所以 size 为 1,相当于是 List 中数组的个数。基本类型是不能作为泛型的参数,按道理应该使用包装类型,但这里缺没有报错,因为数组是可以泛型化的,所以转换后在 list 中就有一个类型为 int 的数组。
/**
* Returns a fixed-size list backed by the specified array. (Changes to
* the returned list "write through" to the array.) This method acts
* as bridge between array-based and collection-based APIs, in
* combination with {@link Collection#toArray}. The returned list is
* serializable and implements {@link RandomAccess}.
*
*
This method also provides a convenient way to create a fixed-size
* list initialized to contain several elements:
*
* List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
*
*
* @param a the array by which the list will be backed
* @return a list view of the specified array
*/
@SafeVarargs
public static List asList(T... a) {
return new ArrayList<>(a);
}
返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直写”到数组。)此方法同 Collection.toArray 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的。
所以,如果是创建多个列表,在传参数时候,最好使用 Arrays.copyOf(a) 方法,不然,对列表的更改就相当于对数组的更改。
public class Test {
public static void main(String[] args) {
Integer[] a = {1, 2, 3, 4};
List list = Arrays.asList(a);
System.out.println(list.size()); //4
}
}
最后提醒,如果 Integer[] 数组没有赋值的话,默认是 null,而不是像 int[] 数组默认是 0。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
java arrays.aslist()_Java中Arrays.asList()方法详解及实例相关推荐
- java获取文件大小_Java中获取文件大小的详解及实例代码
Java 获取文件大小 今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法:另外一种是使用FileInputStream的available()方法, ...
- java中main是什么_Java中的main()方法详解
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...
- java configuration类_JAVA中的Configuration类详解
本文主要研究的是java中的configuration类的用法,涉及maven自动加载,pom.xml配置和简单的java代码,具体如下. properties文件是java平台默认的配置文件格式,其 ...
- java js倒计时_Java实现倒计时的方法详解
这篇文章主要介绍了Java编程倒计时实现的三个示例,三种实现方法,具有一定参考价值,需要的朋友可以了解下. 实现Java编程中倒计时的方法有许多,下面我们通过三个示例来简单了解下它的实现过程. 1.简 ...
- java 链表逆转_java 实现单链表逆转详解及实例代码
java 实现单链表逆转详解 实例代码: class Node { Node next; String name; public Node(String name) { this.name = nam ...
- java io系统_java中的io系统详解
Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...
- java transient 关键字_java中的transient关键字详解
前言 说实话学了一段时间java的朋友对于transient这个关键字依旧很陌生基本没怎么用过,但是transient关键字在java中却起到了不可或缺的地位!如果要说讲到,我觉得最可能出现的地方是I ...
- java多线程中的join方法详解
java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...
- Java中的main()方法详解
源文作者:leizhimin 源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
Python 在子类中调用父类方法详解(单继承.多层继承.多重继承) by:授客 QQ:1033553122 测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...
最新文章
- python课程推荐-课程推荐:四天人工智能 python入门体验课
- Xcode7.2如何真机调试iOS 9.3的设备
- android wifi RSSI达到阈值自动断开
- while opening read connection: jdbc:mysql message from server: Host is not allowed to connect to t
- 运行keras出现 FutureWarning: Passing (type, 1) or ‘1type‘ as a synonym of type is deprecated解决办法
- 支付宝系统架构参考(架构图,最新揭秘)
- 2.Dockerfile
- 微信公众号如何上传文档附件_公众号添加Excel、PDF、PPT等附件教程
- google翻译出错什么原因?翻译英文页面时中文闪了下就显示“翻译出错请重试”
- Android 音视频采集与软编码总结
- 新手建站之【域名解析】⑦
- c++三种排序学习图文笔记(冒泡,插入,快速)
- 快排平均复杂度O(nlogn)证明
- 中文拼写检测(Chinese Spelling Checking)相关方法、评测任务、榜单
- php获取微信公众号用户信息头像,微信公众号的web页面如何获取微信用户名和头像?...
- 【网络安全科普】infra工程师 网络科普
- matlab 数组语法
- 3dmark压力测试 linux,3DMark新增压力测试 你的电脑可靠?得先过这关
- 在D-H参数法里为什么只用四个参数就能完全定义一个具有6自由度的坐标系
- 管理是科学还是艺术呢?-----行动力