Duyệt HashMap, Set như duyệt mảng?

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

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
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?