Arrays.asList
直接去看原文
原文链接:Arrays.asList() 详解-CSDN博客
--------------------------------------------------------------------------------------------------------------------------------
【1. 要点】
该方法是将数组转化成List集合的方法。
List<String> list = Arrays.asList("a","b","c");
注意:
(1)该方法适用于对象型数据的数组(String、Integer...)
(2)该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)
(3)该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新
(4)不支持add()、remove()、clear()等方法
【2.Arrays.asList()是个坑】
用此方法得到的List的长度是不可改变的,
当你向这个List添加或删除一个元素时(例如 list.add("d");)程序就会抛出异常(java.lang.UnsupportedOperationException)。 怎么会这样?只需要看看asList()方法是怎么实现的就行了:
public static <T> List<T> asList(T... a) {return new ArrayList<>(a);}
当你看到这段代码时可能觉得没啥问题啊,不就是返回了一个ArrayList对象吗?问题就出在这里。
这个ArrayList不是java.util包下的,而是java.util.Arrays.ArrayList
它是Arrays类自己定义的一个静态内部类,这个内部类没有实现add()、remove()方法,而是直接使用它的父类AbstractList的相应方法。
而AbstractList中的add()和remove()是直接抛出java.lang.UnsupportedOperationException异常的!
public void add(int index, E element) { throw new UnsupportedOperationException();}
public E remove(int index) {throw new UnsupportedOperationException();}
总结:如果你的List只是用来遍历,就用Arrays.asList()。
如果你的List还要添加或删除元素,还是乖乖地new一个java.util.ArrayList,然后一个一个的添加元素。
【3.示例代码】
package cn.wyc;import java.util.Arrays;
import java.util.List;public class Test {public static void main(String[] args){//1、对象类型(String型)的数组数组使用asList(),正常String[] strings = {"aa", "bb", "cc"};List<String> stringList = Arrays.asList(strings);System.out.print("1、String类型数组使用asList(),正常: ");for(String str : stringList){System.out.print(str + " ");}System.out.println();//2、对象类型(Integer)的数组使用asList(),正常Integer[] integers = new Integer[] {1, 2, 3};List<Integer> integerList = Arrays.asList(integers);System.out.print("2、对象类型的数组使用asList(),正常: ");for(int i : integerList){System.out.print(i + " ");}
// for(Object o : integerList){
// System.out.print(o + " ");
// }System.out.println();//3、基本数据类型的数组使用asList(),出错int[] ints = new int[]{1, 2, 3};List intList = Arrays.asList(ints);System.out.print("3、基本数据类型的数组使用asList(),出错(输出的是一个引用,把ints当成一个元素了):");for(Object o : intList){System.out.print(o.toString());}System.out.println();System.out.print(" " + "这样遍历才能正确输出:");int[] ints1 = (int[]) intList.get(0);for(int i : ints1){System.out.print(i + " ");}System.out.println();//4、当更新数组或者List,另一个将自动获得更新System.out.print("4、当更新数组或者List,另一个将自动获得更新: ");integerList.set(0, 5);for(Object o : integerList){System.out.print(o + " ");}for(Object o : integers){System.out.print (o + " ");}System.out.println();//5、add() remove() 报错System.out.print("5、add() remove() 报错: ");
// integerList.remove(0);
// integerList.add(3, 4);
// integerList.clear(); }}
相关文章:
Arrays.asList
直接去看原文 原文链接:Arrays.asList() 详解-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- 【1. 要点】 该方法是将数组转化成List集合的方法。 List<String> lis…...
XXXX项目管理目标(某项目实施后基于软件工程的总结)
(注:此文作于2007年,算是个缅怀,或者是个吐槽。所有注都是本次发表新加的。原文中的省略号就是原文,并非删减。) 目录 一、序 二、态度问题 三、问题点 3.1 项目过程管理的问题 3.2 配置管理的问题 …...
连新手小白都知道的电子画册一键生成器,你还不知道吗?
相信大家平时见得比较多的是纸质画册,而对于电子画册大家又了解多少呢?电子画册近年来倍受众多企业青睐,制作一本好的电子画册能够让企业在市场竞争中脱颖而出,给人以深刻印象。如何制作呢? 其实很简单,关…...
JAVAEE初阶 操作系统
操作系统的相关知识 一.操作系统的定位二.操作系统的作用三.什么是进程/任务1.进程在系统中如何操作和管理 四.PCB中的核心属性1.pid2.内存指针3.文件描述符表 五.CPU1.cpu的特性:分时复发 六.PCB中进行调度的属性1.状态2.优先级3.记账信息 一.操作系统的定位 二.操作系统的作用…...
第四代智能井盖传感器:万宾科技智能井盖位移监测方式一览
现在城市化水平不断提高,每个城市的井盖遍布在城市的街道上,是否能够实现常态化和系统化的管理,反映了一个城市治理现代化水平。而且近些年来住建部曾多次要求全国各个城市加强相关的井盖管理工作,作为基础设施重要的一个组成部分…...
了解JS中的混个对象“类”
类是面向对象的设计模式,它包括实例化、继承和多态 1、理论 面向对象变成强调的是数据和操作的行为本质上是相互关联的,因此好的设计就是把数据以及和他相关的行为打包(封装)起来,我们也叫他数据结构。 类的一个核心…...
在Sprinng Boot中使用Redis充当缓存
关于我们使用EhCache可以适应很多的应用场景了,但是因为EhCache是进程内的缓存框架,在集群模式下,我们在我们的应用服务器或者云服务器之间的缓存都是独立的。故而在不同的服务器之间的进程会存在缓存不一致的情况,就算我们的EhCa…...
【网络】TCP协议的相关实验
TCP协议的相关实验 一、理解listen的第二个参数1、实验现象2、TCP 半连接队列和全连接队列3、关于listen的第二个参数的一些问题4、SYN洪水Ⅰ、什么是SYN洪水攻击Ⅱ、如何解决SYN洪水攻击? 二、使用Wireshark分析TCP通信流程 一、理解listen的第二个参数 在编写TCP…...
微服务测试怎么做
开发团队越来越多地选择微服务架构而不是单体结构,以提高应用程序的敏捷性、可扩展性和可维护性。随着决定切换到模块化软件架构——其中每个服务都是一个独立的单元,具有自己的逻辑和数据库,通过 API 与其他单元通信——需要新的测试策略和新…...
第9章 K8s进阶篇-持久化存储入门
9.1 k8s存储Volumes介绍 Container(容器)中的磁盘文件是短暂的,当容器崩溃时,kubelet会重新启动容器,但最初的文件将丢失,Container会以最干净的状态启动。另外,当一个Pod运行多个Container时&…...
MathType2024最新word公式编辑器
使用word进行论文编写时,常需要使用公式编辑器,但有些word中并没有公式编辑器,这时应该怎么办呢?本文将围绕word里没有公式编辑器怎么办,word中的公式编辑器怎么用的内容进行介绍。 一、word里没有公式编辑器怎么办 …...
英语语法 - 主语从句
[ 主语从句 ] 没有时态要求 | 三单 1. 从属连词 that 引导的主语从句 | 不做句子成分 | 没有意义 That a monster attacked a ship last week shocked the world. That I bought a house in Beijing shocks many people. That Oscar is rich makes us upset. That he didnt wa…...
千梦网创:实现自动化“挂机躺盈”的三种方法
在互联网众多行业中,有很多人一直在寻找所谓的“挂机躺盈”的项目,在理财领域这种收入被称为“被动收入”。 天上不会掉馅饼这是一句讲烂掉的话了,躺在家里吃白食等着钱进账是一件不可能的事情。 然而如果你看到身边有“被动收入”的例子&a…...
微信小程序页面传递参数方法
说明 页面跳转方法有很多中,但经常会通过一个页面传递参数给另一个页面,非常的常见。但数据量大的时候,通常用字符串传递,但会显得过于臃肿,下面介绍页面传递参数的各种方式。 一、页面跳转链接携带参数 例如…...
出行类app如何提升广告变现收益?
出行类APP已经成为越来越多人们出行的首选,出行类app在变现方式上存在以下痛点:APP功能单一、使用场景单一;用户使用时间集中,粘性低...这些痛点使得开发者获取收益的提升面临极大的挑战。 https://www.shenshiads.com 如何让出…...
万能在线答题考试小程序源码系统 既能刷题 又能考试 带完整的搭建教程
现如今,线上学习和考试已经成为一种趋势。近年来,移动端的普及以及微信小程序的兴起,使得在线答题考试系统变得更加便捷和高效。今天罗峰就来给大家介绍一款万能在线答题考试小程序源码系统,既能刷题,又能考试…...
《Linux从练气到飞升》No.30 深入理解 POSIX 信号量与生产消费模型
🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…...
高防IP可以抵御哪些恶意攻击
高防IP协议可以隐藏用户的站点,使得攻击者无法发现恶意攻击的目标网络资源,从而提高了源站的安全性。能够有效抵御常见的恶意攻击类型ICMPFlood、UDPFlood、 TCPFlood、SYNFlood、ACKFlood等,帮助游戏、金 融、电子商务、互联网、政企等行业抵…...
vivado产生报告阅读分析6-时序报告2
1、复查时序路径详情 单击“ OK ”运行报告命令后 , 将打开一个新窗口。这样您即可复查其中内容。在其中可查看执行选定的每种类型 (min/max/min_max ) 的分析之后所报告的 N 条最差路径。 下图显示的“Report Timing ” ( 时序报告 ) 窗口…...
电脑怎么备份文件?简单几步,轻松备份!
电脑中存储着大量的个人和工作文件,包括照片、文档、音乐和视频等。但突发状况,如硬件故障、病毒感染或误删文件,可能会导致数据丢失。因此,备份文件至关重要。在本文中,我们将介绍三种电脑怎么备份文件的方法…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
