简介java Collection接口

目录

1.集合框架体系

2.Collection 接口简介

3.Collection 接口方法

4.总结


1.集合框架体系

       集合是用于存储对象的容器。而每种容器内部都有其独特的数据结构,正因为不同的容器内部数据结构不同,使其各自有自己独特的使用场景。虽然每个容器有其独特的结构但是类似的容器还是存在共性的(至少对容器内部对象的操作方法上是存在共性的),所以这些共性方法能被不断抽取,最终形成了集合框架体系。

上图是一张Java集合框架的结构图(摘自《Thinking in Java》),通过上图可以看出Java 的集合主要按两种接口分类:Collection,Map,这里我主要是介绍下Collection接口。

2.Collection 接口简介

     Collection接口继承自超级接口Iterator,是Collection层次结构中的根接口。Collection表示一组对象,这些对象也被称为Collection的元素。一些Collection允许有重复的元素,但是另一些则不允许有重复的元素,即可为无序的。JDK不提供此接口的任何直接实现---它会提供更为具体的子接口,这从上面的UML也可以看出来。此接口用来传递Collection,并在需要最大普遍性的地方操作这些Collection。

 

3.Collection 接口方法

Collection 作为集合的一个根接口,定义了一组对象和它的子类需要实现的 15 个方法

3.1.对集合的基础操作

  • int size();   获取元素个数
  • boolean isEmpty();    是否个数为 0
  • boolean contains(Object element);     是否包含指定元素
  • boolean add(E element);   添加元素,成功时返回 true
  • boolean remove(Object element);  删除元素,成功时返回 true
  • Iterator<E> iterator();  获取迭代器
        Collection<String> c1 = new ArrayList<>();
	System.out.println(c1.isEmpty());	        //是否个数为 0
	c1.add("zhangsan");
	System.out.println(c1.add("lisi"));		//添加元素,成功时返回 true
	System.out.println(c1.contains("lisi"));	//是否包含指定元素
	System.out.println(c1.size());			//获取元素个数
	System.out.println(c1.remove("lisi"));	        // 删除元素,成功时返回 true
	Iterator<String> it = c1.iterator();		//获取迭代器
	while(it.hasNext()) {
		System.out.println(it.next());
	}

运行结果:

3.2.还有一些操作整个集合的方法

  • boolean containsAll(Collection<?> c) ;    是否包含指定集合 c 的全部元素
  • boolean addAll(Collection<? extends E> c) ;    添加集合 c 中所有的元素到本集合中,如果集合有改变就返回 true
  • boolean removeAll(Collection<?> c) ;    删除本集合中和 c 集合中一致的元素,如果集合有改变就返回 true
  • boolean retainAll(Collection<?> c) ;    保留本集合中 c 集合中两者共有的,如果集合有改变就返回 true
  • void clear() ;    删除所有元素
	Collection<String> c1 = new ArrayList<>();
	c1.add("zhangsan");
	c1.add("lisi");
	Collection<String> c2 = new ArrayList<>();
	boolean addAll = c2.addAll(c1);//添加集合 c 中所有的元素到本集合中,如果集合有改变就返回 true
	boolean containsAll = c2.containsAll(c1);//是否包含指定集合 c 的全部元素
	boolean removeAll = c2.removeAll(c1);//删除本集合中和 c 集合中一致的元素,如果集合有改变就返回 true
	boolean retainAll = c2.retainAll(c1);//保留本集合中 c 集合中两者共有的,如果集合有改变就返回 true
	c1.clear();//删除所有元素

3.3.对数组操作的方法

  • Object[] toArray() ;    返回一个包含集合中所有元素的数组
  • <T> T[] toArray(T[] a) ;    返回一个包含集合中所有元素的数组,运行时根据集合元素的类型指定数组的类型
        Collection<String> c1 = new ArrayList<>();
	c1.add("zhangsan");
	c1.add("lisi");
	Object[] arr1 = c1.toArray();//返回一个包含集合中所有元素的数组
	String[] arr2 = new String[2];
	c1.toArray(arr2);//返回一个包含集合中所有元素的数组,运行时根据集合元素的类型指定数组的类型

3.4.JDK8 新增加的方法

  • Stream<E> stream()    获取连续的流
  • Stream<E> parallelStream()     获取并行的流
        Collection<String> c1 = new ArrayList<>();
	c1.add("1");
	c1.add("2");
	c1.add("3");
	c1.add("4");
	c1.add("5");
	c1.stream().forEach(action -> { //获取连续流
		System.out.println(action);//按顺序输出元素
	});
	c1.parallelStream().forEach(action -> {//获取并行的流
		System.out.println(action);//元素输出的顺序不确定
	});

4.总结

     Collection 接口是类集框架的基础之一,它创建所有类集都将拥有的 15 个核心方法。因为几乎所有集合类集都实现了 Collection接口,所以熟悉它对于清楚地理解框架是必要的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值