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. HDU3507 print article【斜率优化dp】

    打印文章 时间限制:9000/3000 MS(Java / Others)内存限制:131072/65536 K(Java / Others) 总共提交:14521已接受提交:4531 问题描述 零有 ...

  2. 洛谷U14200 Changing 题解 【杨辉三角】

    题目描述 有nnn盏灯环形排列,顺时针依次标号为1⋯n1\cdots n1⋯n.初始时刻为000,初始时刻第iii盏灯的亮灭aia_iai​给定,000表示灭,111表示亮.下一时刻每盏灯的亮灭取决于 ...

  3. linux下shell显示-bash-3.2$ 不显示路径解决方法

       linux操作下脚本不小心误删了很多东西,变成了下面的样子 在linux shell中不显示路径了,用起来很不方便. 如何改为显示路径的shell呢 步骤如下: vi ~/.bash_profi ...

  4. python基础----再看property、描述符(__get__,__set__,__delete__)

    一.再看property                                                                          一个静态属性property ...

  5. vs2003一查找就卡死了

    Visual Studio 2003一查找就卡死了.解决办法如下: win7 32位下 解决方法:找到VS2003的安装目录,修改"...\Microsoft Visual Studio . ...

  6. 洛谷P1890 gcd区间

    题目描述 给定一行n个正整数a[1]..a[n]. m次询问,每次询问给定一个区间[L,R],输出a[L]..a[R]的最大公因数. 输入输出格式 输入格式: 第一行两个整数n,m. 第二行n个整数表 ...

  7. intellij 插件结构(文件结构以及概念层面上的结构)

    1.插件内的文件 2.插件类加载器 3.插件组件(component) 4.插件的扩展以及扩展点(Extensions.Extension Points) 5.插件的Action 6.插件的Servi ...

  8. 让块元素在同一行显示的方法: float 和inline-block

    float: 定义:按照一个指定的方向移动,遇到父级的边界或者相邻的浮动元素就会停下来(不完全脱离文档流) 值: left.right.none 特点: 1.浮动的块元素可以在一行显示,宽度是被内容撑 ...

  9. gulpfile.js文档

    gulp watch 实现监听不仅需要package.json文档,还需要gulpfile.js文档.否则无法实现. 1.gulp的安装 1.1 首先必须先安装node.js.这个可以参考之前的博客& ...

  10. vue 和react

    React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件. 将注意力集中保持在核心库,而将其 ...