我将不胜感激。
我想做这样的事情:
HashMap <MyFile,ArrayList<MyFile>> hm; new ...
if(hm.containsKey(MyFile))
hm.put(hm.getKey(MyFile), hm.get(MyFile).add(MyFile));
所以我需要实现getKey。
我有2个目录(A,b),我想从中添加HashMap作为文件夹A中的文件的键,以及作为值的ArrayList,我将在其中保存我找到的fileInA的副本我在文件夹B中找到了。我创建了一个类MyFIle并且overrode等于我的需要。
我想实现getkey而不必遍历HashMap中的所有键。
有些人可以给我一些扩展HashMap的技巧或实现我想要的方法。
感谢
ps.我文件的结构是
Name , size, path, typeOfFile, CRC32
我的equals()只比较size,typeOfFile和CRC32。 我的hashCode()使用与我的equals相同的变量。 所以我比较它们时的文件是相同的,但它们可能有不同的名称或路径。所以我可以轻松使用hm.containsKey(val),但我没有原始的val,我需要检索它,以便在不丢失原始文件的情况下向ListArray添加新值。
答案 0 :(得分:-1)
如果我理解正确,你可以轻松使用;
map.put(MyFile,map.get(MyFile).add(MyFile));
HeshMap
添加了适当的关键新元素。
并且不要忘记MyFile的Override
hashCode() (Why always override hashcode() if overriding equals())。