Как создать список файлов в Java? - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь создать список файлов в Java, где у каждого файла есть идентификатор, я использую HashMap, затем заменяю файлы в ArrayList на файлы в HashMap следующим образом:

ArrayList<Object> tab = new ArrayList<>();
tab.addAll(Arrays.asList(par));//par contains files among objects 
File file = null;
HashMap<Integer, File> hm = new HashMap<>();
//loop start browsing tab for files
        file = new File(dir + fileName);                            
        hm.put(i, file);
//loop end
 for (Map.Entry<Integer, File> entry : hm.entrySet()) {
        tab.remove(entry.getKey());
        tab.add(entry.getKey(), entry.getValue());
 }

Проблема в том, что он не заменяет, просто добавляет их, а не добавляет объект.Как это сделать правильно?

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Полагаю, вы хотите переместить все объекты File из значений HashMap в ArrayList<Object> в индекс ключа из HashMap.

Интерфейс List имеетметод List::set(int index, E element), который заменяет элемент в указанной позиции в этом списке на указанный элемент.

List<Object> tab = new ArrayList<>();                  // I suggest you List<File>
// ...
HashMap<Integer, File> hm = new HashMap<>();
// ...      
hm.entrySet().stream().forEach(entry -> tab.set(entry.getKey(), entry.getValue()));
0 голосов
/ 03 июня 2018

Если вы хотите заменить элементы списка, ничего не удаляйте, вместо этого используйте

tab.set(entry.getKey(), entry.getValue());

Также, я думаю, вы хотите ArrayList<File> tab

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...