李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
持有对象--添加一组元素
Leefs
2019-11-27 AM
5233℃
3条
# 持有对象--添加一组元素 ### 前言 本篇小编将给大家带来《Java编程思想》第11.3节,添加一组元素 ### 概念 `ArrayList.asList()` 方法和 `Collections.addAll()` 方法简介: > `ArrayList.asList():` 接受一个数组或是用逗号分隔的元素列表,也可以用可变参数,然后将其转为一个List对象。 > > `Collections.addAll():` 方法接受一个Collection对象,以及一个数组或是一个用逗号分隔的列表,并将元素添加到Collection中。 > 代码示例 ```java public class AddingGroups { public static void main(String[] args) { Collection
collection = new ArrayList
(Arrays.asList(1, 2, 3, 4, 5)); Integer[] moreInts={6,7,8,9,10}; collection.addAll(Arrays.asList(moreInts)); Collections.addAll(collection,11,12,13,14,15); Collections.addAll(collection,moreInts); List
list = Arrays.asList(16, 17, 18, 19, 20); list.set(1, 99); for (Integer integer : list) { System.out.println(integer); } } } ``` > 运行结果 ```java 16 99 18 19 20 ``` Collection的构造器可以接受另一个Collection,可以使用`Arrays.asList()`方法作为构造器输入,但是只能接收Collection,所以不太灵活,一般我们可以采用将`Arrays.asList()`作为参数,然后在调用`collection.addAll()`方法。 同时也可以使用 `List
list = Arrays.asList(1,2,3,4,5);` 作为输出,但是这样有个问题就是底层是数组,不能调整大小,如果要使用`listadd()`或者`list.delete()`方法就会出现异常。 `Arrays.asList()`方法的限制对它产生的List类型做了理想的假设,但是没有注意到你对它会赋予什么样的类型,这就会引发一些问题: ```java class Snow{} class Powder extends Snow{} class Light extends Powder{} class Heavy extends Powder{} class Crusty extends Snow{} class Slush extends Snow{} public class AsListInference { public static void main(String[] args) { List
snow1 = Arrays.asList( new Crusty(), new Slush(), new Powder() ); //List
snow2 = Arrays.asList( // new Light(), new Heavy() //); List
snow3 = new ArrayList
(); Collections.addAll(snow3, new Light(), new Heavy()); List
snow4 = Arrays.
asList( new Light(), new Heavy() ); } } ``` - 1.当视图创建`snow2`的时候,`Arrays.asList()`中只有Powder类型,因此它会创建`List
`而不是`List
`。 - 2.创建`snow4`的时候就解决了创建`snow2`的问题,在`Arrays.asList()`中间岔入了一条线索,他会告诉编译器对于`Arrays.asList()`产生的List类型,这就是显式类型参数说明。 - 3.`Collections.addAll()`工作的很好,因为他从第一个参数中了解到了目标类型是什么。 *附:[参考原文链接](https://segmentfault.com/a/1190000006889131?utm_source=tag-newest)*
标签:
Java
,
Java编程思想
,
JavaSE
,
持有对象
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/228.html
上一篇
持有对象--基本概念
下一篇
持有对象--容器的打印
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
JavaScript
机器学习
Yarn
设计模式
递归
Golang
Http
容器深入研究
gorm
Nacos
MyBatis-Plus
Livy
Sentinel
Java工具类
nginx
二叉树
栈
Scala
SpringBoot
LeetCode刷题
pytorch
正则表达式
FileBeat
FastDFS
SQL练习题
CentOS
Hive
RSA加解密
前端
Kafka
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭