java - 关于将Array转换成ArrayList的警告
问题描述

package com.demo.array;import java.util.ArrayList;import java.util.Arrays;/** * 关于数组的演示 * * @author Captain * */public class ArrayDemo { public static void main(String[] args) {// 声明数组int[] arr = { 1, 10, 8 };// 输出测试数组System.out.println('测试的数组为:' + Arrays.toString(arr));// 通过下角标访问元素,数组的下角标是从0开始的System.out.println('通过数组的下角标访问元素,元素的下角标从0开始,下角标为0的元素是:' + arr[0]);// 将Array 转换成 ArraylistArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr)); }}
问题解答
回答1:asList 是个泛型,可变参数的函数,所以传入数组的时候,这个数组如果是基本类型数据,会被当作一个对象处理,题中就是 int[]。如果数据定义成 Integer[] 的,在 asList 的时候会被当作多个可变参数展开。
另外一个问题在于,就算是 Integer[],它转换之后与 ArrayList<String> 也存在泛型类型不匹配的问题。在 Java8 中用 stream 可以很方便的转换过来,之前的 Java 版可以用循环,这里给你一个 Stack Overflow 上的答案
回答2:// 声明数组int[] arr = { 1, 10, 8 };// 输出测试数组System.out.println('测试的数组为:' + Arrays.toString(arr));// 通过下角标访问元素,数组的下角标是从0开始的System.out.println('通过数组的下角标访问元素,元素的下角标从0开始,下角标为0的元素是:' + arr[0]);// 将Array 转换成 ArraylistList<int[]> ss = Arrays.asList(arr);ArrayList<String> arrayList = new ArrayList<String>();
List<int[]>不能自动转ArrayList<String>
建议统一数据类型, int[] arr = { 1, 10, 8 };换成 String[] arr = { '1', '10', '8' };
// 声明数组String[] arr = { '1', '10', '8' };// 输出测试数组System.out.println('测试的数组为:' + Arrays.toString(arr));// 通过下角标访问元素,数组的下角标是从0开始的System.out.println('通过数组的下角标访问元素,元素的下角标从0开始,下角标为0的元素是:' + arr[0]);// 将Array 转换成 ArraylistArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
相关文章:
1. html5 - 移动端布局问题2. 网站在移动的环境下手机,pc打不开3. python - django在nginx里模板输出html标签问题4. python - 请问各位大神,如何在爬虫用post选择该网页的省份变量option并且得到选择该option的网页呢5. nginx - 使用wordpress搭建博客,怎么实现真实服务器使用HTTP,然后使用UPYUN的HTTPS加密?6. Thinkphp 下载地址找不到了?7. mysql - sql数据还原8. 请教!!!本地laravel项目我想本地运行,怎么在本地访问控制器里的方法。9. JavaScript如何循序渐进,有效的学习?看不下去怎么办?10. javascript - 关于<a>元素与<input>元素的JS事件运行问题

网公网安备