集合的输出有4种
1.Iterator 迭代器,使用最多的输出方法
2.ListIterator 用来输出list集合的迭代器
3.Enumeration 是一个旧的接口,和迭代器的功能差不多
4.foreach : jdk 1.5 以后增加的新功能
1.迭代输出 Iterator
集合的输出有一个思想:”就是只要集合要输出,最好就用迭代“,因为这是最标准的做法
迭代输出的原理
来看下源码:
public interface Iterator <E>
{
boolean hasNext();//判断
E next();//取走
void remove();//删除
}
例子:
public class IteratorTest {
public static void main(String[]
args) {
List<String> list= new ArrayList<String>();
list.add( "like");
list.add( "hello");
list.add( "hello world");
Iterator<String> iterator=list.iterator();
while(iterator.hasNext()){
System. out.print(iterator.next()+"、" );
}
}
}
结果:
like、hello、hello world、
2.删除特定的元素
public class IteratorTest1 {
public static void main(String[]
args) {
List<String> list=new ArrayList<String>();
list.add( "like");
list.add( "hello");
list.add( "hello world");
Iterator<String> iterator=list.iterator();
while(iterator.hasNext()){
String str=iterator.next();
if("like" .equals(str)){
iterator.remove();
} else{
System. out.print(str+"、" );
}
}
}
}
结果:
hello、hello world、
3.listIterator 的双向输出
public class ListIteratorTest
{
public static void main(String[]
args) {
List<String> list=new ArrayList<String>();
list.add( "like");
list.add( "hello");
list.add( "hello world");
ListIterator<String> iterator=list.listIterator();
while(iterator.hasNext()){//由前向后输出
System. out.print(iterator.next()+"、" );
}
System. out.println("" );
while(iterator.hasPrevious()){//由后向前输出
String str=iterator.previous();
System. out.print(str+"、" );
}
}
}
结果:
like、hello、hello world、
hello world、hello、like、
补充:如果想要由后向前输出,就必须要有由前向后输出
4.增加及替换元素
public class ListIteratorDemo
{
public static void main(String[]
args) {
List<String> list=new ArrayList<String>();
list.add( "like");
list.add( "hello");
list.add( "hello world");
ListIterator<String> iterator=list.listIterator();
while(iterator.hasNext()){
String str=iterator.next();
System. out.print(str+"、" );
iterator.set(str+ "like_");
}
System. out.println();
iterator.add( "aaaaaaa");
while(iterator.hasPrevious()){
String str=iterator.previous();
System. out.print(str+"、" );
}
}
}
结果:
like、hello、hello world、
aaaaaaa、hello worldlike_、hellolike_、likelike_、
5.java 1.5 的新特性 foreach
public class ForeachDemo {
public static void main(String[]
args) {
List<String> list = new ArrayList<String>();
list.add( "like");
list.add( "hello");
list.add( "hello world");
for (String
list1 : list) {
System. out.print(list1+"、" );
}
}
}
结果:
like、hello、hello world、
6.废弃的接口 Enumeration
它的作用基本上和 Iterator 相同
public class EnumerationDemo {
public static void main(String[]
args) {
Vector<String> list = new Vector<String>();
list.add( "like");
list.add( "hello");
list.add( "hello world");
Enumeration<String> e =list.elements();
while(e.hasMoreElements()){
System. out.print(e.nextElement()+"、" );
}
}
}
结果:
like、hello、hello world、