gpt4 book ai didi

java - Java while 循环中如何将数组合并为一个数组

转载 作者:行者123 更新时间:2023-12-02 03:59:09 25 4
gpt4 key购买 nike

我有一个来自 csv 文件的字符串流。这些字符串将转换为数组,并且必须将其放入对象的 setter 中并将该对象作为值放入 hashMap 中。如何将所有传入的数组连接成一个,然后才使用 Set 方法?有没有比在 set 方法之前连接数组更好的解决方案?

这是我的代码:

HashMap<Integer, Publication> innerMap = new HashMap<>();
try {

CsvReader csv = new CsvReader(filename);

csv.readHeaders();

while (csv.readRecord()) {
int id = Integer.parseInt(csv.get("ID"));
Publication pub = new Publication();
String names = csv.get("Names");
String[] namesArr = names.split(",");
if (!innerMap.containsKey(id)) {
innerMap.put(id, new Publication());
}
String[] merged = ????
pub.setNames(merged);
innerMap.put(au.getIdx(), pub);
}
csv.close();

} catch (IOException e) {
System.out.println("Exception : " + e);

}

最佳答案

首先将它们存储在列表中:

List<String[]> list = new ArrayList<>;
...
list.add(namesArr);

然后,读完后:

int size = 0;
for (String[] arr : list) {
size += arr.length;
}
List<String> all = new ArrayList<>(size);
for (String[] arr : list) {
all.addAll(Arrays.asList(arr));
}

第一个循环有助于分配必要的内存来保存所有数据(否则,当您在第二个循环中向其中添加元素时,ArrayList 内部可能会进行大量重新分配和数组复制循环)。

关于java - Java while 循环中如何将数组合并为一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35092195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com