集合的输出有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、