JAVA SE基础提要--11:Collection和迭代器

0x01.Collection

概述:

  • 集合:集合是java中提供的一种容器,可以用来存储多个数据。
    集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map

  • Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.Listjava.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有java.util.ArrayListjava.util.LinkedListSet接口的主要实现类有java.util.HashSetjava.util.TreeSet

  • 集合本身是一个工具,它存放在java.util包中。在Collection接口定义着单列集合框架中最最共性的内容。

  • 在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合

常用方法:

public boolean add(E e)// 把给定的对象添加到当前集合中 。
public void clear()//清空集合中所有的元素。
public boolean remove(E e)//把给定的对象在当前集合中删除。
public boolean isEmpty()//判断当前集合是否为空。
public boolean contains(E e)//判断当前集合中是否包含给定的对象。
public Object[] toArray()//把集合中的元素,存储到数组中。
public int size()//返回集合中元素的个数

0x02.迭代器

概述:

  • 迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
  • JDK提供了一个接口java.util.IteratorIterator接口也是Java集合中的一员,但它与CollectionMap接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器。
  • 在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。
  • Iterator迭代器对象在遍历集合时,内部采用指针的方式来跟踪集合中的元素。
  • 在调用Iterator的next方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回,当再次调用next方法时,迭代器的索引会指向第二个元素并将该元素返回,依此类推,直到hasNext方法返回false,表示到达了集合的末尾,终止对元素的遍历。

Iterator接口的使用:

  • public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合中的元素的。

如:

Collection<String> objs = new ArrayList<String>;//多态
objs.add("aa");
objs.add("bb");
objs.add("cc");
Iterator<String> it = objs.iterator();//获取迭代器
 while(it.hasNext()){ //判断是否有迭代元素
 	 String s = it.next();//获取迭代出的元素
 	 System.out.println(s);
 	}

增强for循环:

  • 增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。

格式:

for(元素的数据类型  变量 : Collection集合or数组){ 
	......
}

例如:

Collection<String> objs = new ArrayList<String>;//多态
objs.add("aa");
objs.add("bb");
objs.add("cc");
for(String a:objs){
	System.out.println(a);
}	
发布了51 篇原创文章 · 获赞 36 · 访问量 1353

猜你喜欢

转载自blog.csdn.net/ATFWUS/article/details/104492074
今日推荐