Hi, cho mình hỏi có thể nào dùng for duyệt HashMap, Set,… như duyệt mảng thông thường được không ? và mình có thể duyệt tìm key hoặc value lớn nhất, nhỏ nhất trong Map được không ạ ? thanks
Duyệt HashMap, Set như duyệt mảng?
Từ phiên bản Java 8+, bạn có thể dùng forEach kết hợp với biểu thức lambda để duyệt, ví dụ
Duyệt HashMap
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < 5; i++) {
map.put("0" + String.valueOf(i), i);
}
// (key, value)
map.forEach((k, v) -> System.out.println(k + " => " + v));
Output
00 => 0
01 => 1
02 => 2
03 => 3
04 => 4
Duyệt Set
Set<Integer> set = new HashSet<>();
for (int i = 0; i < 5; i++) {
set.add(i);
}
set.forEach(t -> System.out.println(t));
hoặc
for (Integer i : set) {
System.out.println(i);
}
Output
0
1
2
3
4
Dùng Collections để tìm key lớn nhất, nhỏ nhất
System.out.println(Collections.min(map.keySet())); // 00
System.out.println(Collections.max(map.keySet())); // 04
tương tự cho value.
6 Likes