李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
容器深入研究--Collection的功能方法
Leefs
2020-01-10 AM
3441℃
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
2
标签云
Spark SQL
国产数据库改造
Http
Shiro
数据结构和算法
Stream流
Quartz
Scala
pytorch
Jenkins
Livy
哈希表
JavaWEB项目搭建
ajax
DataWarehouse
递归
Git
前端
数据结构
人工智能
Eclipse
Java阻塞队列
Kafka
Hadoop
MySQL
Spark Core
并发编程
SQL练习题
Spark Streaming
Java工具类
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭