不确定我是否正确理解,但如果您想计算HashMap中的元素,可以尝试类似的方法。
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "A");
map.put("2", "B");
map.put("3", "C");
map.put("4", "B");
map.put("5", "B");
map.put("6", "C");
System.out.println(count("B", map)); // output is 3
}
static int count(String id, Map<String, String> map) {
int i = 0;
for (String val : map.values()) {
if (id.equals(val))
i++;
}
return i;
}
编辑:如果您想在每次触摸特定值时包装函数性,计数器递增,可以通过这种方法实现。
public class IdHandler {
Map<String, Integer> count = new HashMap<String, Integer>();
public int count(String id) {
return count.get(id);
}
public void export(Map<String, String> map) {
for (String value : map.values()) {
System.out.println(value);
if (!count.containsKey(value)) {
count.put(value, 1);
} else {
int i = count.get(value);
count.put(value, ++i);
}
}
}
}
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "A");
map.put("2", "B");
map.put("3", "C");
map.put("4", "B");
map.put("5", "B");
map.put("6", "C");
IdHandler id = new IdHandler();
id.export(map);
System.out.println(id.count("B")); // output is 3
System.out.println(id.count("C")); // output is 2
}