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 = {12345};
    //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 = {1234};
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 = {1234};
    List<Integer> list = Ints.asList(intArray);
    list.set(0100);
    System.out.println(Arrays.toString(intArray));
    list.add(5);
    list.remove(0);
 
  }
}

output:

1
2
3
[100234]
UnsupportedOperationException
UnsupportedOperationException

最新文章

  1. IOS之Objective-C学习 代理设计模式
  2. Java 抓取网页中的内容【持续更新】
  3. 剑指Offer面试题:22.二叉搜索树的后序遍历序列
  4. ReSharper 配置及用法
  5. 【Swift学习】Swift编程之旅---闭包(十一)
  6. Grunt-cli的执行过程以及Grunt加载原理
  7. 常见设计模式的解析和实现(C++)之九—Decorator模式
  8. 简单的web三层架构系统【第五版】
  9. 一键搜索之Win10锁屏壁纸
  10. MPQ Storm库 源代码分析 一个
  11. 有趣Web之Json(四)---json与(Object/List/Map)相互转化
  12. 使用URLConnection调用axis1.4开发的webservice
  13. js之单例模式
  14. 使用kubeadm安装kubenetes
  15. 【css】适配iphoneX
  16. 使用jQuery和CSS3实现一个数字时钟
  17. [C++]指针与多级指针(图解)
  18. CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解
  19. KNN手写实践:Python基于数据集整体计算以及排序
  20. html中表单的应用

热门文章

  1. 继承以及Super
  2. 【HANA系列】SAP HANA SQL获取字符串长度
  3. MATLAB灰色关联度分析
  4. Spring是什么? 什么是IOC(Inversin of control)? 什么是AOP (Aspect-Oriented Programming)?
  5. (转)arcengine+c# 修改存储在文件地理数据库中的ITable类型的表格中的某一列数据,逐行修改。更新属性表、修改属性表某列的值。
  6. Linux批量文件管理
  7. C#实现多线程的方式:使用Parallel类
  8. 【python基础学习】---解析多层json,解析xml
  9. 中国高考志愿填报与职业趋势分析 - ActiveReports 大数据分析报告
  10. 使用php过滤emoji表情