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的流。函數

相關文章
相關標籤/搜索