Collection 接口中的 toArray()
方法可以将集合保存的数据转为对象数组返回,用户可以利用数据循环的方式获取内容。但是此类方式由于性能不高并不是集合输出的首选方案。在类集框架中对于集合的输出提供了 4 种方式: Iterator、 ListIterator、 Enumeration、 foreach。
Iterator 迭代输出
在 Iterator 接口中提供有 remove()
方法,Collection 中也提供了 remove()
方法。但是在使用中尽量不要使用 Collection.remove()
方法,如果使用之后,会出现异常信息。
代码如下:
public static void runIterator() {
Set<String> set = new HashSet<>();
set.add("ONE");
set.add("TWO");
set.add("THREE");
set.add("FOUR");
set.add("FIVE");
set.add("SIX");
Iterator<String> iter = set.iterator();
while (iter.hasNext()) {
String str = iter.next();
if (("ONE".equals(str))) {
iter.remove();
} else {
System.out.print(str + " - ");
}
}
}
复制代码
输出如下:
FIVE - SIX - FOUR - TWO - THREE -
复制代码
ListIterator 双向迭代输出
ListIterator 比 Iterator 多一点,就是可以从后往前迭代,也可以从前往后迭代。
代码如下:
public static void runListIterator() {
List<String> list = new ArrayList<>();
list.add("ONE");
list.add("TWO");
list.add("THREE");
ListIterator<String> lIter = list.listIterator();
System.out.println("From front to back:".toUpperCase());
System.out.print("\t");
while (lIter.hasNext()) {
System.out.print(lIter.next() + " - ");
}
System.out.println("\r\nBack to front:".toUpperCase());
System.out.print("\t");
while (lIter.hasPrevious()) {
System.out.print(lIter.previous() + " - ");
}
}
复制代码
输出结果:
FROM FRONT TO BACK:
ONE - TWO - THREE -
BACK TO FRONT:
THREE - TWO - ONE -
复制代码
Enumeration 枚举输出
Enumeration 设置的主要目的是输出 Vector 集合数据。
代码如下:
public static void runEnumeration() {
Vector<String> vector = new Vector<>();
vector.add("ONE");
vector.add("TWO");
vector.add("THREE");
Enumeration<String> enumeration = vector.elements();
while (enumeration.hasMoreElements()) {
System.out.println(enumeration.nextElement());
}
}
复制代码
输出:
foreach 遍历输出
foreach 除了可以实现数组输出外,还支持集合的输出操作。
代码如下:
public static void runForeach() {
Set<String> set = new HashSet<>();
set.add("ONE");
set.add("TWO");
set.add("THREE");
for (String string : set) {
System.out.println(string);
}
}
复制代码
输出:
其他操作与数组输出完全相同。
------------
相关推荐
【Howe 学 JAVA】Java 类集框架1——List集合
Howe 学 JAVA】Java 类集框架2——Set 集合
------------
本文永久链接:https://neusoft.me/ziyuan/java/2020/05/11/523/
评论