集合--Collection與迭代

1.1Collection 集合

  1. 集合:集合是Java提供的一種容器技術,能夠用來存儲多個數據
  2. 集合與數組的區別:
  • 數組的長度是固定的,集合的長度是可變的
  • 數組中存儲的是同類型的元素,存儲基本數據類型值,集合存儲對象, 並且對象的類型能夠不一致,在開發中通常當對象多的時候,使用集合進行存儲。

1.2集合框架

    Java 提供了知足各類API,在使用這些 API 前,首先了解其繼承與接口的操做架構, 才能瞭解什麼時候纔有哪一個類,以及類之間如何彼此合做,從而靈活運用。 集合按其存儲結構能夠分爲兩大類:單列集合 java.util.Collection 和雙列集合 java.util.Mapjava

Collection:單列集合類的根接口,用於存儲一系列符合某種規則的元素,它由兩個重要 的子接口,分別是:java.util.List 和 java.util.Set。其中,List 的特色是:元素有序(會按照 添加的順序進行元素的輸出),並且能夠重複(重複指的是內容一致);Set 的特色是: 元素無序(輸出時無序),並且元素不能夠重複,存放在 java.util 包。數組

  1. 1:List 接口的主要實現類: 
  • java.util.ArrayList
  • java.util.LinkedList 
  1. 2:Set 接口的主要實現類: 
  • java.util.HashSet 
  • java.util.LinkedHashSet 
  • java.util.TreeSet (多用於給hashset排序)

1.3 Collection 經常使用功能

  1. public boolean add(E e):把給定的對象添加到當前集合中
  2. public boolean addAll(Collection c):將指定集合中的全部元素添加到此集合
  3. public void clear():今後集合中刪除全部元素
  4. public boolean contains(Object o) :若是集合包含指定元素,則返回 true
  5. public boolean isEmpty():判斷是否爲空
  6. public Object[] toArray():把集合中的元素,存儲到數組中
  7. public boolean remove(Object o):從該集合中刪除指定元素的單個實例
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);

       
    }
}

2.1 Iterator 接口

   在程序開發中,常常須要遍歷集合的全部元素,JDK 專門提供了一個接口 java.util.Iterator。Iterator 接口是 java 集合中的一員,與 Collection、Map 接口有所不一樣。Collection與 Map 接口用於存儲元素,而Iterator 主要用於迭代訪問(即遍歷)Collection 中的元素,所以 Iterator 對象也被稱爲迭代器,想要遍歷 Collection 集合,那麼就要獲取該集合迭代器完成迭代操做。(迭代,即 Collection 集合元素的通用獲取方式,在去元素以前先要判斷集合中有沒有元 素,若是有,就把這個元素取出來再判斷,若是還有就繼續取出來,一直把集合中全部的元素所有取出)架構

public Iterator iterator():獲取集合對應的迭代器,用來遍歷集合中的元素
  1. public E next():返回迭代的下一個元素

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
    }
}

2.2 迭代器的實現原理

  當遍歷集合時,首先經過調用集合的 iterator()方法獲取迭代器對象,而後使用 hashNext()方 法判斷集合中是否存在下一個元素。若是存在,則調用 next()方法將元素取出,不然說明已 經到達了集合末尾,中止遍歷元素。 Iterator 迭代器對象在遍歷集合時,內部採用指針的方式來跟蹤集合中的元素,爲了更好的 理解迭代器的工做原理
  在調用 iterator 的 next()方法以前,迭代器的索引位於第一個元素以前,不指向任何元素。 當第一次調用迭代器的 next 方法後,迭代器的索引會向後移動一位,指向第一個元素並將 該元素返回,當再次調用 next()方法時,迭代器的索引會指向第二個元素並將該元素返回, 直到 hasNext()方法返回 false,表示到集合的末尾,終止元素的遍歷spa

相關文章
相關標籤/搜索