集合的输出

集合的输出[
  • Iterator
  • ListIterater
  • foreach输出
  • Enumeration输出
  • System.out.println(all); //假设all是一个集合的实例,a,b分别是其元素,则输出 [a,b],适用于输出集合中所有元素。


只要碰到了集合输出的操作,就一定使用Iterator接口,这是最标准的做法。

Iterator是专门的迭代输出接口(将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取出),其实例化依靠Collection接口。

java.util.Collection有个方法:
Iterator<E>  iterator()  //返回在此 collection 的元素上进行迭代的迭代器。

java.util.Iterater
  • boolean hasNext()          如果仍有元素可以迭代,则返回 true。
  • E next()           返回迭代的下一个元素。
  • void remove()           从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。


Iterater的标准用法:
List<String> all = new ArrayList<String>();
		all.add("f");
		all.add("eng");
		all.add("lei");
		Iterator<String> ite = all.iterator(); //为Iterator接口实例化
		while(ite.hasNext()){//判断是否有内容
			System.out.println(ite.next());
		}


Iterator的remove()方法比较少用,因为其本身的功能是输出内容。
注意点:在利用迭代输出时用了List的remove()方法将会出现错误。

总结:
Iterator接口的功能是从前向后输出,属于单向输出。
Iterator:迭代输出
使用Iterator时最好不用remove()方法。

ListIterator
Iterator的子接口,用于双向输出。
public interface ListIterator<E>
extends Iterator<E>


  • ListIterator<E> listIterator()         返回此列表元素的列表迭代器(按适当顺序)。
  • ListIterator<E> listIterator(int index)           返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。




  • Collection接口中并没有定义可以为此类实例化的操作,只有List接口中才存在ListIterator接口的实例化操作。
  • 必须先由前向后输出后才能由后向前输出
  • 增加和替换元素:add(E e), set(E e)



foreach对集合输出的支持
             
List<String> all = new ArrayList<String>() ;
		all.add("fff") ;
		all.add("_") ;
		all.add("lll") ;
		for(String str:all){
			System.out.print(str + " ") ;
		}

Enumeration旧接口,很少用。
一般直接操作Vector类。

Vector类有如下方法:
Enumeration<E> elements()           返回此向量的组件的枚举。

              
 Vector<String> all = new Vector<String>() ;
		all.add("fff") ;
		all.add("_") ;
		all.add("lll") ;
		Enumeration<String> enu = all.elements() ;
		while(enu.hasMoreElements()){	//判断是否有内容,hasNext()
			System.out.print(enu.nextElement() + "、") ;	// 输出元素:next()
		}

你可能感兴趣的:(集合)