gpt4 book ai didi

java - 列出 Java 中的常见元素

转载 作者:行者123 更新时间:2023-12-01 16:44:34 25 4
gpt4 key购买 nike

我正在尝试打印两个列表之间的公共(public)元素,并且当我尝试使用retainAll();时它基本上会跳过之后的所有内容。

    List<String> dblist = Arrays.asList(db);
List<String> medlist = Arrays.asList(medication);

//Get Meds in Database that Match Patient Meds
jTextArea3.append("\nMedications in dblist :"+"\n");
for (int d =0; d<dblist.size(); d++){
jTextArea3.append(dblist.get(d)+"\n");
}

jTextArea3.append("\nMedications in medlist :"+"\n");
for (int d =0; d<medlist.size(); d++){
jTextArea3.append(medlist.get(d)+"\n");
}

//dblist.retainAll(medlist);
jTextArea3.append("\nMedications in both :"+"\n");
for (int d =0; d<dblist.size(); d++){
jTextArea3.append(dblist.get(d)+"\n");
}

这将列出 dblist.get(d) 的内容,但是一旦我取消注释 dblist.retainAll(medlist),输出就会在上面的 medlist 输出的末尾停止。

最佳答案

您遇到了 UnsupportedOperationException。因为 retainAll 会调整集合的大小,而 Arrays.asList() 返回不可调整大小的集合。

new ArrayList(Arrays.asList(db)) 替换 dblist 初始化

但我不建议在 retainAll 方法中使用 List 作为参数,这将是 O(N^2) 复杂度。如果元素顺序无关紧要,请使用 HashSet 作为 medlist

关于java - 列出 Java 中的常见元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54755670/

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