Java 提供了知足各類API,在使用這些 API 前,首先了解其繼承與接口的操做架構, 才能瞭解什麼時候纔有哪一個類,以及類之間如何彼此合做,從而靈活運用。 集合按其存儲結構能夠分爲兩大類:單列集合 java.util.Collection 和雙列集合 java.util.Mapjava
Collection:單列集合類的根接口,用於存儲一系列符合某種規則的元素,它由兩個重要 的子接口,分別是:java.util.List 和 java.util.Set。其中,List 的特色是:元素有序(會按照 添加的順序進行元素的輸出),並且能夠重複(重複指的是內容一致);Set 的特色是: 元素無序(輸出時無序),並且元素不能夠重複,存放在 java.util 包。數組
package com.day9; /** * @author SFJ * @date 2019/11/15 * @time 21:57 **/ public class Test1 { public static void main(String[] args) { Collection c1=new ArrayList(); c1.add("sangfengjiao"); c1.add(21);//添加元素到集合中 System.out.println(c1); System.out.println("是否爲空:"+c1.isEmpty()); System.out.println("是否包含:"+c1.contains(1000)); System.out.println("移除元素:"+c1.remove(21)); System.out.println("元素的個數:"+c1.size()); Collection c2=new ArrayList(); c2.addAll(c1); System.out.println(c2); } }
在程序開發中,常常須要遍歷集合的全部元素,JDK 專門提供了一個接口 java.util.Iterator。Iterator 接口是 java 集合中的一員,與 Collection、Map 接口有所不一樣。Collection與 Map 接口用於存儲元素,而Iterator 主要用於迭代訪問(即遍歷)Collection 中的元素,所以 Iterator 對象也被稱爲迭代器,想要遍歷 Collection 集合,那麼就要獲取該集合迭代器完成迭代操做。(迭代,即 Collection 集合元素的通用獲取方式,在去元素以前先要判斷集合中有沒有元 素,若是有,就把這個元素取出來再判斷,若是還有就繼續取出來,一直把集合中全部的元素所有取出)架構
public Iterator iterator():獲取集合對應的迭代器,用來遍歷集合中的元素
public boolean hasNext():若是仍有元素能夠迭代,則返回 true框架
package com.day9; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /** * @author SFJ * @date 2019/11/15 * @time 22:07 **/ public class Test2 { public static void main(String[] args) { Collection c1=new ArrayList(); c1.add("sang"); c1.add("feng"); c1.add("jiao"); System.out.println(c1); Iterator it=c1.iterator();//獲取集合的迭代器對象 while(it.hasNext()){ System.out.println(it.next()); } System.out.println(it.next());///迭代完後繼續調用 next 方法會有java.util.NoSuchElementException } }
當遍歷集合時,首先經過調用集合的 iterator()方法獲取迭代器對象,而後使用 hashNext()方 法判斷集合中是否存在下一個元素。若是存在,則調用 next()方法將元素取出,不然說明已 經到達了集合末尾,中止遍歷元素。 Iterator 迭代器對象在遍歷集合時,內部採用指針的方式來跟蹤集合中的元素,爲了更好的 理解迭代器的工做原理
在調用 iterator 的 next()方法以前,迭代器的索引位於第一個元素以前,不指向任何元素。 當第一次調用迭代器的 next 方法後,迭代器的索引會向後移動一位,指向第一個元素並將 該元素返回,當再次調用 next()方法時,迭代器的索引會指向第二個元素並將該元素返回, 直到 hasNext()方法返回 false,表示到集合的末尾,終止元素的遍歷spa