java - 如何在Java中创建文件列表?

标签 java file arraylist replace hashmap

我正在尝试在Java中创建一个文件列表,其中每个文件都有一个ID,我使用HashMap,然后用HashMap中的文件替换ArrayList中的文件,如下所示:

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());
 }

问题是它并没有替换它,只是添加它们,而不是添加一个对象。如何以正确的方式做到这一点?

最佳答案

我猜你想移动所有的 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()));

关于java - 如何在Java中创建文件列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50661447/

相关文章:

java - 如何在java中迭代列表中的列表?

java - 如何在不左移其余元素的情况下从 ArrayList 中删除元素

java - 使用selenium查找页面源

java - 如何将 HTTPRequest 从一个 Controller 类重定向到另一 Controller 类?

java - Lucene 4.x性能问题

java - 向套接字发送多个数据

android - 使用InputStream和Scanner android从.txt文件读取数据

java - 强制 java 释放 Java 中的所有文件锁/句柄

c - 如何使用不能将数组作为参数的函数来填充作为结构一部分的数组

java - 从循环中保存集合中的对象