Буду признателен за помощь.HashMap getKey или добавить значение без замены ключа
Я хочу сделать что-то вроде этого:
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.the структура моего файла
Name , size, path, typeOfFile, CRC32
мои равно() только сравнивает размер, typeOfFile и CRC32. my hashCode() использует те же переменные, что и мои равны. , поэтому файлы, когда я их сравниваю, одинаковы, но могут иметь другое имя или путь. поэтому я могу легко использовать hm.containsKey (val), но у меня нет исходного val, и мне нужно его получить, чтобы добавить новое значение в ListArray без потери исходного файла.
'MyFile' - ваш' ключ'. Я не понимаю ваш вопрос. –
Я уверен, что смогу помочь вам в этом, если бы только ваше описание проблемы было более ясным. Не могли бы вы потратить некоторое время, чтобы изменить свой вопрос, сосредоточив внимание на проблеме? Похоже, вы пытаетесь выполнить итерацию папки A, создавая карту каждого файла, а затем итерации B, находите совпадения с помощью ключевого поиска с A. В конечном итоге вам нужна структура данных, которая является файлами в B, которые соответствуют A только по имени. – ThisClark
MyFIle соответствует ключу, но это не тот же файл. Я только что редактировал свой пост, объясняя структуру MyFyle. поэтому, если я использую MyFyle из папки B, чтобы добавить новое значение, я потеряю путь к MYFyle в папке A, потому что. Надеюсь, теперь все ясно. – kronolynx