李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
容器深入研究--Collection的功能方法
Leefs
2020-01-10 AM
3519℃
2条
# 容器深入研究--Collection的功能方法 ### 前言 本篇讲述《Java编程思想》第17.3小节,Collection的功能方法 ### 概述 下面表格列出了可以通过collection执行的所有操作,它们是可以通过set或者list执行的所有操作(list中会有一些额外的方法) | 方法 | 方法说明 | | ------------------------------------------ | ------------------------------------------------------------ | | boolean add(T) | 确保容器持有具有泛型类型T的参数。如果没有将此参数添加进容器,则返回false | | boolean addAll(Collection extends T>) | 添加参数中的所有元素,只要添加了任意元素就返回true | | void clear() | 移除容器中的所有元素 | | boolean contains(T) | 如果容器中已经持有泛型类型T此参数,则返回true | | Boolean containsAll(Collection>) | 如果容器持有此参数中的所有元素,则返回true | | boolean isEmpty() | 容器中没有元素时返回true | | Iterator
iterator() | 返回一个Iterator
, 可以用来遍历容器中的元素 | | Boolean remove(Object) | 如果参数在容器中,则移除此元素的一个实例,如果做了移除操作,则返回true | | boolean removeAll(Collection>) | 移除参数中的所有元素,只要有移除动作就返回true | | Boolean retainAll(Collection>) | 只保存参数中的元素,只要Collection发生了改变就返回true | | int size() | 返回容器中元素的数目 | | Object[] toArray() | 返回一个数组,该数组包含容器中的所有元素 | |
T[] toArray(T[] a) | 返回一个数组,该数组包含容器中的所有元素,返回结果的运行时类型参数与参数数组a的类型相同,而不是单纯的Object | 请注意,其中不包括随机访问所选择元素的get()方法。因为Collection包括Set,而Set是自己维护内部顺序的(这使得随机访问变得没有意义)。因此,如果想检查Collection中的元素,那就必须使用迭代器。 **示例** ```java public class CollectionMethods { public static void main(String[] args) { Collection
c = new ArrayList
(); c.addAll(Countries.names(6)); c.add("ten"); c.add("eleven"); System.out.println(c); // 从list中生成一个数组 Object[] array = c.toArray(); // 从list中生成一个字符串数组 String[] str = c.toArray(new String[0]); // 查找最大最小元素 System.out.println("Collections.max(c) = " + Collections.max(c)); System.out.println("Collections.min(c) = " + Collections.min(c)); // 将一个集合添加到另一个集合 Collection
c2 = new ArrayList
(); c2.addAll(Countries.names(6)); c.addAll(c2); System.out.println(c); c.remove(Countries.DATA[0][0]); System.out.println(c); c.remove(Countries.DATA[1][0]); System.out.println(c); // 移除集合中所有元素 c.removeAll(c2); System.out.println(c); c.addAll(c2); System.out.println(c); // 是这个集合中的元素吗? String val = Countries.DATA[3][0]; System.out.println("c.contains(" + val + ") = " + c.contains(val)); // 集合中是否包含这个集合? System.out.println("c.containsAll(c2) = " + c.containsAll(c2)); Collection
c3 = ((List
)c).subList(3, 5); // 交集 c2.retainAll(c3); System.out.println(c2); // 移除c2中所有c3的元素 c2.removeAll(c3); System.out.println("c2.isEmpty() = " + c2.isEmpty()); c = new ArrayList
(); c.addAll(Countries.names(6)); System.out.println(c); c.clear(); // 移除所有元素 System.out.println("after c.clear():" + c); } } ``` > 运行结果 ```java [ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI, ten, eleven] Collections.max(c) = ten Collections.min(c) = ALGERIA [ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI, ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] [ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI, ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] [BENIN, BOTSWANA, BURKINA FASO, BURUNDI, ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] [ten, eleven] [ten, eleven, ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] c.contains(BOTSWANA) = true c.containsAll(c2) = true [ANGOLA, BENIN] c2.isEmpty() = true [ALGERIA, ANGOLA, BENIN, BOTSWANA, BURKINA FASO, BURUNDI] after c.clear():[] Process finished with exit code 0 ``` 创建ArrayList来保存不同的数据集,然后向上转型为Collection,所以很明显,代码只用到了Collection接口。main()用简单的练习展示了Collection中的所有方法。
标签:
Java
,
Java编程思想
,
容器深入研究
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/402.html
上一篇
Docker私有仓库
下一篇
DockerMaven插件
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
Map
JVM
Spark Streaming
MyBatis-Plus
Scala
Linux
SpringCloudAlibaba
栈
DataX
持有对象
哈希表
RSA加解密
DataWarehouse
NIO
数据结构
Spark RDD
ajax
Hbase
Flume
锁
查找
工具
序列化和反序列化
Http
机器学习
BurpSuite
人工智能
稀疏数组
GET和POST
ClickHouse
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭