导言
在Java编程中,经常需要遍历集合(List、Set、Map)中的元素,以执行各种操作,例如查找、修改、删除或仅仅是打印元素。Java提供了多种遍历方式,每一种都适用于不同的情景。在本篇博客中,将详细探讨如何遍历List、Set和Map。
1.第一种遍历List
1.1使用for-each 循环
List<String> list = new ArrayList<>();
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
for (String item : list) {
System.out.println(item);
}
for-each循环是一种简洁的方式,用于遍历List中的元素。它是最常见的List遍历方式之一。
1.2 使用迭代器(Iterator)
List<String> list = new ArrayList<>();
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}
使用迭代器遍历List允许你在遍历过程中执行删除操作,而不会引发并发修改异常。
1.3使用Stream API
List<String> list = Arrays.asList("Item 1", "Item 2", "Item 3");
list.stream().forEach(item -> {
System.out.println(item);
});
Stream API提供了一种函数式编程的方式来处理集合。它可以进行过滤、映射等操作,并且代码简洁。
2.第二种遍历Set
2.1使用for-each 循环
Set<String> set = new HashSet<>();
set.add("Item 1");
set.add("Item 2");
set.add("Item 3");
for (String item : set) {
System.out.println(item);
}
for-each循环同样适用于Set的遍历,它会遍历Set中的唯一元素。
2.2使用迭代器(Iterator)
Set<String> set = new HashSet<>();
set.add("Item 1");
set.add("Item 2");
set.add("Item 3");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}
使用迭代器遍历Set与遍历List类似,可以安全地在遍历过程中执行删除操作。
3.第三种遍历Map
3.1使用for-each 循环遍历键值对(EntrySet)
Map<Integer, String> map = new HashMap<>();
map.put(1, "Item 1");
map.put(2, "Item 2");
map.put(3, "Item 3");
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
使用for-each循环和entrySet()
方法,你可以遍历Map中的键值对,非常方便地访问键和值。
3.2使用迭代器遍历键值对(EntrySet)
Map<Integer, String> map = new HashMap<>();
map.put(1, "Item 1");
map.put(2, "Item 2");
map.put(3, "Item 3");
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
使用迭代器遍历Map的键值对,同样可以在遍历过程中执行删除操作。
3.3遍历键或值
如果只需要遍历Map的键或值,可以使用keySet()
或values()
方法。
遍历键:
for (Integer key : map.keySet()) {
System.out.println("Key: " + key);
}
遍历值:
for (String value : map.values()) {
System.out.println("Value: " + value);
}
以上是在Java中遍历List、Set和Map的常见方式。选择合适的遍历方式取决于你的具体需求以及性能要求。