Java中Collection和Iterator接口

1.Collection接口是List、Set和Queue接口的父接口,该接口里面定义方法便可用与操做Set集合,也用于操做List和Queue集合。Collection接口里面定义一些操做集合元素的方法。boolean add(Object o):该方法用于向集合里面添加一个元素。boolean addAll(Collection c):该方法把集合c里面的全部元素添加到指定集合里面。 void clear():清除集合里面的的全部元素,将集合长度变为0。boolean contains(Object o):返回集合里面包含指定元素。boolean containsAll(Collection c):返回集合是否包含集合c里的全部元素。boolean isEmpty():返回集合是否为空。 Iterator iterator():返回一个Iterator对象用于遍历集合里面的全部元素。boolean remove(Object o):删除集合中的指定元素,当集合里面有多元素,只删除第一个符合条件的元素。boolean removeAll(Collection c):从集合里面删除c里面包括全部元素。boolean ratainAll(Collection c):从集合中删除集合c里面的不包含的全部元素。(至关于求交集)。int size():返回集合里面的元素个数。Object []  toArray():该方法把集合转换成一个数组,全部集合中的元素变为对应的数组的元素。java

2.java8为Iterable接口新增长了一个forEach(Consumer action)默认方法,该方法所需参数的类型是一个函数式接口,而Iterable接口是Collection接口的父类接口,所以Collection集合也能够直接调用该方法。当程序调用Iterable的forEach(Consumer action)遍历集合元素是=时,程序会依次将集合的元素传给Consumer的accept(T t)方法,该接口中惟一的抽象方法。正由于Consumer是函数式接口,所以可使用Lambda表达式来遍历几何元素。编程

package com.lanou.test;

import java.util.ArrayList;

public class Demo05 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList<Object> arraylist=new ArrayList<Object>();
		arraylist.add(1);
		arraylist.add("jsdjk");
		arraylist.add(656);
	    arraylist.forEach(obj->{System.out.println(obj);});
	}
}

3.Iterator接口也是java集合框架的成员,但它与Collection系列、Map系列的集合不同:Collection系列集合、Map系列集合主要用于盛装其余对象,而Iterator则主要用于遍历Collection集合中元素,Iterator对象也被成为迭代器。Iterator接口隐藏了各类Collection实现类的底层细节,向应用程序提供遍历Collection集合元素的统一的编程接口。Iterator接口实现的方法boolean hasNext():若是被迭代的集合元素尚未被遍历完,则返回true;Object next():返回集合的下一个元素。void remove():删除集合里上一次next方法返回的元素.void forEachRemaining(Consumer action):该方法可以使用Lambda表达式来遍历集合。数组

package com.lanou.test;


import java.util.HashSet;
import java.util.Iterator;


public class Demo07 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
         HashSet<Object> hashset=new HashSet<Object>();
         hashset.add("fjkjk");
         hashset.add("jfdsjk");
         hashset.add("asdds");
         Iterator it=hashset.iterator();
         while(it.hasNext()){
        	 String temp=(String)it.next();
        	 System.out.println(temp);
         }
	}
}

4.java8为Collection集合新增一个removeIF(Predicte filter)方法,该方法将会批量删除符合filter条件的全部元素,该方法须要一个Predicate(谓词)对象做为参数,Predicate也是函数式接口,所以可以使用lanbda表达式做为参数。如hashset.removeIF(ele->((String)ele).length()<10)。框架

5.java8还新增了Stream、IntStream、Longstream、DoubleStram等流式API,这些API表明多个支持串行和并行汇集操做元素。四个接口中,Stream是一个通用的流接口,而InStream、LongStream、DoubleStream则表明元素类型为Int、long、double的流。函数

相关文章
相关标签/搜索