有关集合类的输出,专门用一篇博客来进行详细的总结。
输出集合类的元素最常见的是使用toString()方法,或者,List接口中有提供get()方法,但是这些都不是集合类的标准输出。从严格意义上来讲,集合的输出有四种形式。
1:迭代输出:Iterator(标准输出法)
在Collection接口中有一个iterator()方法,只要是Collection接口的实现类对象就一定会有此方法,可以取得其Iterator对象。在JDK1.5以前,此方法定义在Collection接口中,JDK1.5以后此方法被定义为Collection的父接口:Iterable接口中的方法。
Iterable接口中的抽象方法有几个时经常会用到的
1:public boolean hasNext(); 判断是否有下一个元素
2:public E next(); 取得当前元素
3:public void remove(); 删除元素
接下来的代码,我演示一下Iterator的使用
List<String> list = new ArrayList<>();
list.add("Hello A");
list.add("Hello B");
list.add("Hello C");
Iterator<String> iterator = list.iterator();//返回list的Iterator对象
while(iterator.hasNext()){
String string = iterator.next();
System.out.println(string);
}
其实Iterator的使用方法有点类似于Scanner文本扫描器。
注意:在集合输出的时候千万不要修改集合中的元素,否则会抛出ConcurrentModifictionException异常
2:双向迭代输出:ListIterator(List接口独有)
在使用Iterator进行输出的时候,只能从前到后来进行内容的迭代处理,在某些特殊的情况下我们也许需要双向的迭代,Iterator接口的子接口:ListIterator接口就可以实现这种需求
不过这种输出模式只有List接口才有,而Set接口是没有的,我来演示一下这种输出模式
List<String> list = new ArrayList<>();
list.add("Message A");
list.add("Message B");
list.add("Message C");
list.add("Message D");
ListIterator<String> listIterator = list.listIterator();//获得:ListIterator对象
System.out.println("从前向后");
while (listIterator.hasNext()){
System.out.println(listIterator.next()+" ");
}
System.out.println("从后向前");
while(listIterator.hasPrevious()){
System.out.println(listIterator.previous()+" ");
}
这里有一点要注意的是:要使用从后向前输出模式的时候必须先进行从前到后的输出,如果一开始使用从后向前输出的话,listIterator.previous()方法是获取不到上一个元素的,这样就实现不了双向输出了
3:Enumeration枚举输出(Vector类独有)
这中输出方式在JDK1.0就已经引入了,主要是为Vector服务,在JDK1.5以后对这种模式追加了泛型。首先介绍一下Vector类中有关Enumeration的方法。
1:public boolean hasMoreElements(); 判断是否有下一个元素
2:public E nextElement(); 取得下一个元素
3:public Enumeration elements(); 取得Enumeration接口对象
例子:使用Enumeration进行输出
Vector<String> vector = new Vector<>();
vector.add("message A");
vector.add("message B");
vector.add("message C");
vector.add("message D");
Enumeration<String> enumeration = vector.elements();
while(enumeration.hasMoreElements()){
System.out.println(enumeration.nextElement());
}
直到现在一些操作类库上还是只支持使用Enumeration,不支持Iterator输出
4:foreach输出(最常用)
在JDK1.5以后我们可以用foreach来输出集合,这也是最简单,最常用的一种输出方式
示例:使用foreach输出
List<String> list = new ArrayList<>();
list.add("Message A");
list.add("Message B");
list.add("Message C");
list.add("Message D");
list.add("Message E");
for(String s : list){
System.out.println(s);
}
有关集合输出的方式就先总结·到这里,希望能对大家有所帮助。