李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
持有对象--添加一组元素
Leefs
2019-11-27 AM
3747℃
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://www.lilinchao.com/archives/228.html
上一篇
持有对象--基本概念
下一篇
持有对象--容器的打印
取消回复
评论啦~
提交评论
已有 3 条评论
孤独这杯酒
林超值得是快速生成代码?
回复
2019-11-28 08:52
孤独这杯酒
jdbc开始了
回复
2019-11-27 18:59
Leefs
博主
@孤独这杯酒
强
回复
2019-11-27 19:35
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
gorm
工具
JavaScript
持有对象
序列化和反序列化
BurpSuite
Ubuntu
栈
Zookeeper
Elastisearch
SpringCloud
Yarn
NIO
Netty
Azkaban
Java工具类
nginx
微服务
并发线程
Hbase
Linux
数据结构和算法
Thymeleaf
RSA加解密
稀疏数组
Beego
人工智能
Java阻塞队列
VUE
Map
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
林超值得是快速生成代码?
jdbc开始了
强