在使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合的相关方法,他的add/remove/clear方法都会抛出UnsupportedOperationException异常。

说明:

asList的返回对象是一个Arrays的内部类,并没有实现集合的修改方法。Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍然是数组。

String[] str = new String[]{"you", "me"};

List list = Arrays.asList(str);

其中第一种情况:list.add("thanks");会报运行时异常。

第二种情况:如果str[0] = "ganma"; ,那么list.get(0);也会随之改变;

较为实用的正确转化为集合并可以使用集合方法的转化方式:

第一:

List<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,5,4,3));

即使用另外的Collection来将自身初始化。

第二:

Colllection<Integer> collection = new ArrayList<Integer>();

Integer[] moreInts = {6,8,4,5,8,4};

Collections.addAll(collection,moreInts);

Collections.addAll(collection,1,5,4,7,8,4,1);

第三:

collection.addAll(Arrays.asList(moreints));

在Java编程思想第四版中表示这三种由上到下为常用较为使用的转化方式。

其中collection.addAll()成员方法只接受另一个Collection对象作为参数,因此他不如asList和Collections.addAll()灵活,因为他们都可以接受可变参数列表。

Java 关于使用Arrays.asList()数组转集合的问题相关推荐

  1. 通过Arrays.asList数组转为集合的坑

    首先定义一个int类型的数组 int[] arr = {1,2,3};// 将数组转为集合并输出List<int[]> ints = Arrays.asList(arr);System.o ...

  2. Arrays.asList(数组) 解说

    Arrays.asList(数组) 解说 最近在用Arrays的asList()生成的List时,List元素的个数时而不正确. Java代码 一:Arrays.asList(数组)该方法是将数组转化 ...

  3. java lists.aslist_java Arrays.asList()

    在Java中比如想把一个数组转成集合,通常习惯使用Arrays.asList,但是要小心,数组通过Arrays.asList转成集合后,是不能调用集合的add,remove方法的.不然会抛异常Unsu ...

  4. 督促自己——某客编程题3道(Java)——字符串查找、数组、集合

    督促自己--某客编程题3道(Java)--字符串查找.数组.集合 第一题: 题目描述 一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母 ...

  5. 【JAVA】谈谈Arrays.asList()

    我们在日常的开发中,常常使用到Arrays.asList()这个方法,它能够很轻易地将一个数组转化为一个List. 例如: Integer[] a = new Integer[]{1, 2, 3};L ...

  6. Exception in thread “main“ java.lang.UnsupportedOperationException Arrays.asList中add报错

    public static void main(String[] args) {List<Integer> integers = Arrays.asList(new Integer[]{1 ...

  7. java 数据结构详解,数组,集合,HashMap

    数组的特性: 数组在内存中是一块连续的存储单元存储起来的,声明数组的时候我们必须声明其长度,这样才会为我们声明一个连续的存储区域. 这种存储方式造成我们想要往数组中存储一个数据时那么其后面各个元素都要 ...

  8. java 集合数组初始化_Java用Arrays.asList初始化ArrayList实例方法

    Java用Arrays.asList初始化ArrayList实例方法 发布于 2020-2-29| 复制链接 在本篇文章里小妖给大家分享的是关于Java中使用Arrays.asList初始化Array ...

  9. java数组转为集合的两种常用方法

    方法一 Integer[] a = {1,2,3,4,5,6};//使用Arrays.asList(a)时 数组需要定义为包装类新 List<Integer> integers = Arr ...

最新文章

  1. 拉格朗日乘子法 学习笔记
  2. 【转】ASP.NET AJAX入门系列
  3. 001 JAVA基础
  4. OpenGL ES之GLSL实现索引绘制及渲染纹理和颜色混合
  5. 考研数学:【以错补错】 降低做题出错率
  6. [python opencv 计算机视觉零基础到实战] 六、图像运算
  7. c语言课程设计加密程序,C语言课程设计文件加密解密.doc
  8. Ant学习---第二节:Ant添加文件夹和文件夹集的使用
  9. 【CF 736C】Ostap and Tree,树形DP
  10. matlab极坐标下的二维傅里叶变换_形象理解二维傅里叶变换
  11. k8s删除deployment_VPGAME k8s迁移实践(5) Deployment 与 Service 配置
  12. 使用Python自由切分pdf文件提取任意页面
  13. selenium+python自动化,数据驱动实例
  14. 张同学会是男版李子柒吗?
  15. jdk LinkedHashMap源码分析
  16. 小程序 搜索结果关键字标红(支持拼音)
  17. 第三单元JML地铁系统博客 By Wazaki
  18. 高项论文(进度管理2)
  19. EasyBoot制作中文启动菜单教程
  20. 我在阿里十年:揭密阿里人才培养体系

热门文章

  1. CentOS7搭建小型CDN
  2. 【摘抄】产品新人的技能要求一览表
  3. AI数学基础——经验分布,熵
  4. [原创]如何获得SBO的数据表中文描述和数据表的中文字段
  5. 分布式与集群的区别是什么
  6. 【模板】最小费用最大流
  7. java后端研发经典面试题总结,为公司招兵买马
  8. 关闭selinux的方法汇总
  9. strtok strtok_s strsep
  10. ros ubuntu 卸载_ROS的安装、卸载