java集合类输出、Iterator迭代输出、ListIterator双向迭代、Enumeratio枚举输出、foreach循环

集合输出

1.利用toString()&get()(List接口特有的),都不是标准的集合输出。
2.有四种方式,Iterator、ListIterator、foreach、Enumeration(只适用于Vector子类)。

Iterator(迭代输出)


1.jdk1.5之前Collection就有此方法,JDK1.5之后,此方法提升为Iterator接口的方法。总之,Set和List接口可以直接用。
2.Iterator最初的三个抽象方法
hasNext()
next()
remove();(此方法从JDK1.8之后变为default完整方法)
eg:实例化对象

Iterator iterator = list.iterator();//
while(iterator.hasNext()){
    String str = iterator.next();
    System.out.println(str);
}


3.Iterator接口中的remove()方法就是解决集合内容的删除操作。
使用集合提供的remove()方法ConcurrentModificationException
而使用Iterator的remove方法,则不会产生异常。
4.注意,在集合输出时,不要修改集合中的元素,会产生同步问题。

双向迭代接口ListIterator


1.此接口定义的方法
hasPrevious()//判断是否有上一个元素
previous()//取得上一个元素
2.

ListIterator listIterator = list.listIterator() ;
System.out.print("从前向后输出: ") ;
while (listIterator.hasNext()) {
System.out.print(listIterator.next()+"、") ;
}
System.out.print("\n从后向前输出: ") ;
while (listIterator.hasPrevious()) {
System.out.print(listIterator.previous()+"、") ;
}


3.如果要实现由后向前输出,得想由前向后输出。

枚举输出Enumeration


1.jdk1.0时就引入了Enumeration接口,在JDK1.5时加入了泛型的应用
2.Enumeration定义的方法
hasMoreElements()
nextElement()
2.要想取得这个接口的实例化对象,不能依靠Collection、Set、List接口,只能依靠Vector子类。
所以要这样建集合类
Vector vector = new Vector<>();
Enumeration enumeration = vector.elements();
3.一些操作类库上仍然只支持Enumeration,而不支持Iterator。

foreach输出

for(String str : list){
    System.out.println(str);
}

总结:

看见集合输出就用Iterator。
    Iterator和Enumeration中的方法要掌握好。


 

你可能感兴趣的:(知识)