转载来源:https://blog.csdn.net/qq_36443497/article/details/79663663?utm_source=blogxgwz9

在使用工具类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()灵活,因为他们都可以接受可变参数列表。

阿里巴巴手册之-Arrays.asList()数组转集合的问题的更多相关文章

  1. Arrays.asList(数组) 解说

    最近在用Arrays的asList()生成的List时,List元素的个数时而不正确. Java代码 一:Arrays.asList(数组)该方法是将数组转化为集合(该方法主要用于Object对象数组 ...

  2. java Arrays.asList

    List<String> list = Arrays.asList("A B C D E F G H I J K L ".split(" ")); ...

  3. Java - 一道关于Arrays.asList的题目

    题目 有这样一道有趣的题目: final int[] test = new int[]{1,2,3,4}; final Integer[] test2 = new Integer[]{1,2,3,4} ...

  4. java之Arrays.asList

    使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计的,但jdk1.5开始,有了另一个比 ...

  5. 工具类Arrays.asList()方法把数组转换成集合

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

  6. Java数组转集合之Arrays.asList()用法

    Arrays.asList()用法 使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合. 而一开始asList的设计时用于打印数组而设计 ...

  7. Java集合工具类使用的一些坑,Arrays.asList()、Collection.toArray()、foreach

    Arrays.asList() 使用指南 最近使用Arrays.asList()遇到了一些坑,然后在网上看到这篇文章:Java Array to List Examples 感觉挺不错的,但是还不是特 ...

  8. 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换

    ------- android培训.java培训.期待与您交流! ---------- 集合框架的工具类:        Collections : 集合框架的工具类.里面定义的都是静态方法. Col ...

  9. 在Arrays.asList()引发的问题中进一步学习集合与泛型等内容

    前言 最近在网上看到一个问题,情况类似如下(记为问题1): public class Demo { public static void main(String[] args) { System.ou ...

随机推荐

  1. CentOS8中进行IP和主机名的网络配置的过程图解

    摘要: 很多人不知道如何在字符界面下配置主机名和ip,所以写了这个文章,本人也是新手,希望指出错误与不足.(本文只是在字符界面下教程) 一.输入你的账号密码登录 1)ifconfig 查看你目前的 主 ...

  2. P4075 [SDOI2016]模式字符串

    总结 P4075 [SDOI2016]模式字符串 题目描述 给出n个结点的树结构T,其中每一个结点上有一个字符,这里我们所说的字符只考虑大写字母A到Z,再给出长度为m的模式串s,其中每一位仍然是A到z ...

  3. Python3标准库:collections容器数据类型

    1. collections容器数据类型 collections模块包含除内置类型list.dict和tuple以外的其他容器数据类型. 1.1 ChainMap搜索多个字典 ChainMap类管理一 ...

  4. C++->10.3.6.设有两个按升序排列的二进制文件a和b,将他们合并成一个新的升序二进制数据文件file。

    #include<iostream.h> #include<stdlib.h> #include<string.h> #include<fstream.h&g ...

  5. CF1205E Expected Value Again

    题意 题意翻译 对于一个字符串\(s\),我们定义其美丽值\(f(s)\)为满足下列两个条件的正整数\(i\)的个数: \(1\leq i<|s|\) \(s\)长度为\(i\)的前缀与后缀相等 ...

  6. 软件工程概论,java web项目

    需要网站系统开发需要掌握的技术: 实施Java的WEB项目需要掌握的技术如:面向对象分析设计思想,设计模式和框架结构,XML语言,网页脚本语言,数据库,应用服务器,集成开发环境Java语言是完全面向对 ...

  7. ubuntu set up 1 - 网络

    r2v has to be replaced.. 1. 官网下载zip版本,下载安装脚本 https://www.r2v.com/chapter_00/install.html https://ins ...

  8. BK: Data mining, Chapter 2 - getting to know your data

    Why: real-world data are typically noisy, enormous in volume, and may originate from a hodgepodge of ...

  9. arm学习笔记

    学习ARM也有一定时间了,想想还是记点东西,要不以后就忘了.这是我的第一片,简简单单.但比较基础.1. ARM中一些常见英文缩写解释MSB:最高有效位:LSB:最低有效位:AHB:先进的高性能总线:V ...

  10. 你所不知道的locust

    from locust import HttpLocust, TaskSet, task import uuid, time import logging,json # https://docs.lo ...