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. javascript - 一排三个框,各个框的间距是15px,距离外面的白框间距也是15px,这个css怎么写?2. javascript - 如何利用vue组件 动态生成router-link3. html5 - javascript写业务有用到什么编程范式没?4. javascript - vue 手机端项目在进入主页后 在进入子页面,直接按返回出现空白情况5. javascript - immutable配合react提升性能?6. html5 - vue-cli 装好了 新建项目的好了,找不到项目是怎么回事?7. css3 - 微信前端页面遇到的transition过渡动画的bug8. javascript - jQuery post()方法,里面的请求串可以转换为GBK编码么?可以的话怎样转换?9. python3.x - python 中的maketrans在utf-8文件中该怎么使用10. mysql - C#连接数据库时一直这一句出问题int i = cmd.ExecuteNonQuery();

网公网安备