在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Java集合教程 - Java集合遍历在Java Collections Framework中,不同类型的集合使用不同类型的数据结构以不同的方式存储它们的元素。 一些集合对它们的元素有排序,有些没有。集合框架提供了遍历集合的以下方法:
使用迭代器集合提供了一个迭代器来遍历其所有元素。 迭代器可以对集合执行以下三个操作:
Java中的迭代器是 我们可以使用Collection接口中的iterator()方法获取集合的迭代器。 以下代码创建一个字符串列表,并获取列表的迭代器: import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { // Create a list of strings List<String> names = new ArrayList<>(); // Get an iterator for the list Iterator<String> nameIterator = names.iterator(); } } 迭代器< E> 接口包含以下方法: boolean hasNext() E next() default void remove() default void forEachRemaining(Consumer<? super E> action) 如果集合中有更多元素要迭代,
例子通常, import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { // Create a list of strings List<String> names = new ArrayList<>(); names.add("A"); names.add("B"); names.add("C"); // Get an iterator for the list Iterator<String> nameIterator = names.iterator(); // Iterate over all elements in the list while (nameIterator.hasNext()) { // Get the next element from the list String name = nameIterator.next(); System.out.println(name); } } } 上面的代码生成以下结果。
如果对于每个 对 例2以下代码使用迭代器遍历列表的所有元素,并使用remove()方法删除该元素。 import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { // Create a list of strings List<String> names = new ArrayList<>(); names.add("A"); names.add("B"); names.add("C"); Iterator<String> nameIterator = names.iterator(); // Iterate over all elements in the list while (nameIterator.hasNext()) { // Get the next element from the list String name = nameIterator.next(); System.out.println(name); nameIterator.remove(); } System.out.println(names); } } 上面的代码生成以下结果。 例3forEachRemaining()方法对集合中尚未由迭代器访问的每个元素执行操作。 action指定为 以下代码显示如何打印列表的所有元素。 import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { // Create a list of strings List<String> names = new ArrayList<>(); names.add("A"); names.add("B"); names.add("C"); Iterator<String> nameIterator = names.iterator(); nameIterator.forEachRemaining(System.out::println); } } 上面的代码生成以下结果。 迭代器注意事项迭代器是一次性对象。我们不能重置迭代器,它不能被重用。 要再次遍历同一集合的元素,请通过调用集合的iterator()方法来创建一个新的Iterator。 使用for-each循环我们可以使用for-each循环遍历集合的元素。 我们可以使用for-each循环遍历任何实现类实现Iterable接口的集合。 for-each循环的一般语法如下: Collection<T> yourCollection = ;
for(T element : yourCollection) {
}
在幕后,for-each循环获取迭代器并调用hasNext()和next()方法。 import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { // Create a list of strings List<String> names = new ArrayList<>(); names.add("A"); names.add("B"); names.add("C"); for (String name : names) { System.out.println(name); } } } 上面的代码生成以下结果。 for-each注意事项for-each循环有几个限制。 我们不能使用for-each循环从集合中删除元素。 以下代码将抛出ConcurrentModificationException异常: List<String> names = get a list;
for(String name : names) {
names.remove(name);// Throws a ConcurrentModificationException
}
对于for-each循环,我们没有办法从集合的中间开始。 for-each循环不提供访问先前访问的元素的方式。 使用forEach()方法Iterable接口包含一个新的 该方法遍历所有元素并应用操作。
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { // Create a list of strings List<String> names = new ArrayList<>(); names.add("A"); names.add("B"); names.add("C"); names.forEach(System.out::println); } } 上面的代码生成以下结果。 |
请发表评论