我有一个文件列表。我想扫描并计算相同大小的文件数量。问题在于 filesize 很长,正如我们所知,hashmap 将只接受一个对象而不是一个基元。因此,我使用 new Long(filesize)
将其放入 HashMap 中。我没有得到一对 (filesize, count),而是得到了一个 (filesize, 1) 的列表,因为每个 Long obj 都是唯一的。
我该如何构建这个累加器?
1.4.2 的任何解决方案?
最佳答案
你只需这样做:
Map<Long, Integer> count = new HashMap<Long, Integer>();
for (File file : files) {
long size = file.getTotalSpace();
Integer n = count.get(size);
if (n == null) {
count.put(size, 1);
} else {
count.put(size, n + 1);
}
}
有一些 auto-boxing并在这里进行拆箱。
关于java - 在 Java HashMap 中保留一对原语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903107/