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