在Java中,Map接口提供了Entry内部接口,用于表示Map中的键值对。Entry接口定义了getKey()和getValue()两个方法,可以分别获取键和值。使用Entry可以遍历Map中的所有键值对。
示例代码如下:
Map<Integer, String> map = new HashMap<>();
map.put(1, "value1");
map.put(2, "value2");
// 遍历Map中的键值对
for (Map.Entry<Integer, String> entry : map.entrySet()) {
int key = entry.getKey();
String value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
输出结果为:
Key: 1, Value: value1
Key: 2, Value: value2
在遍历时,使用了Map的entrySet()方法,返回一个包含所有键值对的Set集合。然后利用for-each语法遍历该集合,每次迭代获取到的是一个Entry对象,可以通过其方法getKey()和getValue()获取键和值。
Set接口没有提供类似的Entry内部接口,因为Set中的元素是没有键值对的,只有唯一的值。如果需要遍历Set,可以使用迭代器(Iterator)或者增强的for循环。
示例代码如下:
Set<String> set = new HashSet<>();
set.add("value1");
set.add("value2");
// 使用迭代器遍历Set
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String value = iterator.next();
System.out.println(value);
}
// 使用增强的for循环遍历Set
for (String value : set) {
System.out.println(value);
}
输出结果为:
value1
value2
value1
value2
可以看到,Set中的元素没有固定顺序,每次遍历的顺序可能不同。
————————————————
转载于:https://blog.csdn.net/Leiroy/article/details/131592260