我有一个文件列表.我想扫描并保持相同大小的文件数量.问题是文件大小很长,正如我们所知,hashmap只接受一个对象而不是一个基元.所以使用新的Long(文件大小),我把它放入hashmap.由于每个Long obj都是唯一的,因此我获得了一个(filesize,1)列表,而不是获得一对(filesize,count).
我该如何构建这个累加器?
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和拆箱.