1.Collection 接口

(1)Collection的超级接口是Iterable

(2)Collection常用的子对象有:Map、List、Set、Queue。

右图中实现黑框的ArrayList、LinkedList、HashSet、HashMap是常用的具体对象。注:实际类图与右图存在一些差异。

Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。(面向接口的编程思想)

2.Collection 常用方法

(1)添加

boolean add(Object obj);一次添加一个。
boolean addAll(Collection c);将制定容器中的所有元素。

(2)删除

void clear();
boolean remove(object o)
boolean removeAll(Collection c):
boolean retainAll(Collection c);

(3)获取长度 int size()
(4)判断

boolean isEmpty():是否为空
boolean contains(Object o) :包含
boolean containsAll(Collection c) :包含

(5)将集合转成数组

toArray();
toArray([]);

(6)取出集合元素

Iterator iterator()
获取集合中元素上迭代功能的迭代器对象。

迭代器:具备着迭代功能的对象。
而迭代器对象不需要new。直接通过 iterator()方法获取即可。
迭代器是取出Collection集合中元素的公共方法。

 public class CollectionDemo {

 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {

 		Collection coll = new ArrayList();
 //		methodDemo(coll);

 		methodAllDemo();
 	}

 	/*
 	 * 演示带All的方法。
 	 */
 	public static void methodAllDemo(){

 		//1,创建两个容器。
 		Collection c1 = new ArrayList();
 		Collection c2 = new ArrayList();

 		//2,添加元素。
 		c1.add("abc1");
 		c1.add("abc2");
 		c1.add("abc3");
 		c1.add("abc4");

 		c2.add("abc22");
 		c2.add("abc33");
 		c2.add("abc5");

 		//往c1中添加c2.
 //		c1.addAll(c2);

 		//判断c1中是否包含c2中的所有元素。
 //		boolean b = c1.containsAll(c2);
 //		System.out.println("b="+b);

 		//从c1中删除c2.
 //		c1.removeAll(c2);//将c1中和c2相同的元素从c1中删除。

 		c1.retainAll(c2);//将c1中和c2不同的元素从c1中删除。保留c1中和c2相同的元素。
 		System.out.println(c1);

 	}

 	/*
 	 * 演示Collection中的基本功能。
 	 */
 	public static void methodDemo(Collection coll){

 		//1,添加元素。
 		coll.add("abc1");
 		coll.add("abc2");
 		coll.add("abc3");

 		//2,删除。
 //		coll.remove("abc2");会改变集合的长度。

 		//3,清除。
 //		coll.clear();

 		//4,包含。
 		System.out.println("contains:"+coll.contains("abc1"));

 		System.out.println(coll);

 	}

 }
 

2018-01-04

内容来自传智播客和java编程思想

Java容器---Collection接口中的共有方法的更多相关文章

  1. java容器——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...

  2. Collection接口中的方法的使用

    add(Object e):将元素e添加到集合coll中size():获取添加的元素的个数addAll(Collection coll1):将coll1集合中的元素添加到当前的集合中clear():清 ...

  3. Collection接口中方法的使用

    Collection:集合的接口 1.Collection和ArrayList和List的关系 ArrayList      implement(实现)       List List        ...

  4. Java 8 接口中的默认方法与静态方法

    Java 8 接口中的默认方法与静态方法 1. 接口中的默认方法 允许接口中包含具有具体实现的方法,该方法称"默认方法",默认方法使用用 default 关键字修饰. public ...

  5. Java8接口中的默认方法

    Java8新增特性,可以为接口中添加默认方法,实现这个接口的所有类都会继承这个方法,这样看起来,接口和类的界限就有点不明显了,同时也会带来多继承,菱形问题.这样设计的初衷是什么? 重所周知,java8 ...

  6. 『Java』Collection接口 Collections类

    接口Collection public interface Collection<E>定义了所有单列集合中共性的方法,所有的单列集合都可以使用共性方法. Collection的常用子接口有 ...

  7. 纳尼,java可以在接口中实现非抽象方法了?

    纳尼,接口中可以定义实例方法了?! 纳尼,接口中还可以定义静态方法了?! 没错,在Java8中新增了很多新的特性,其中就包括可以在接口中添加方法和变量. 首先我们来看下代码 public interf ...

  8. [Day19]Collection接口中的子类(List集合、Set集合)

    1.List接口 1.1API总结 (1)是一个元素存取有序的集合 (2)是一个带有索引的集合,通过索引可以精确的操作集合中的元素 (3)集合中有可以重复的元素,通过元素的equals方法,来比较是否 ...

  9. Java8新特性Optional、接口中的默认方法与静态方法

    Optional Optional 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念 ...

随机推荐

  1. Native Wifi API

    原文链接地址:https://www.cnblogs.com/jackcin/p/3285357.html 在windows平台下,可以使用native wifi api来控制无线网卡,包括获取无线网 ...

  2. python基础(3)

    使用list和tuple list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: ...

  3. 【bzoj1002】轮状病毒

    Portal-->bzoj1002 Solution 虽然说看上去是一道矩阵树定理的题但是 但是! 没有模数了解一下,\(n=100\)了解一下 开心愉快敲了一个高消之后发现跑到\(80\)都已 ...

  4. Android APK打包流程

    简单build流程图 官网给了我们一张非常简单的编译.打包.apk生成内容以及签名的图片.图片大体介绍了从Project到运行到设备或者模拟器的一个大体流程,我们也从中看到一个完整的apk包含如下内容 ...

  5. 【DP】【CF855C】 Helga Hufflepuff's Cup

    Description 给你一个树,可以染 \(m\) 个颜色,定义一个特殊颜色 \(k\) , 要求保证整棵树上特殊颜色的个数不超过 \(x\) 个.同时,如果一个节点是特殊颜色,那么它的相邻节点的 ...

  6. 【数学】【背包】【NOIP2018】P5020 货币系统

    传送门 Description 在网友的国度中共有 \(n\) 种不同面额的货币,第 \(i\) 种货币的面额为 \(a[i]\),你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为 \(n ...

  7. oracle 时间

    select to_char(to_date(sysdate,'yyyy-mm-dd'),'day') from dual; select to_date('2017-12-31','day') fr ...

  8. joomla! 3.X 开发系列教程

    http://www.mengyunzhi.com/members-resource/joomla/87-joomla-menu-study.html 学习地址 http://blog.csdn.ne ...

  9. Codeforces 864E dp

    题意: 房间着火了,里面有n件物品,每件物品有营救需要的时间t,被烧坏的最晚时间d,他的价值p,问能得到的最大价值,并且输出营救出来的物品编号 代码: //必然是先救存活时间短的即d小的,所以先排个序 ...

  10. 高并发大容量NoSQL解决方案探索

    大数据时代,企业对于DBA也提出更高的需求.同时,NoSQL作为近几年新崛起的一门技术,也受到越来越多的关注.本文将基于个推SRA孟显耀先生所负责的DBA工作,和大数据运维相关经验,分享两大方向内容: ...