我正在尝试在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()));
我是一名优秀的程序员,十分优秀!