为了账号安全,请及时绑定邮箱和手机立即绑定

列出 Java 中的常见元素

列出 Java 中的常见元素

白衣染霜花 2022-06-23 20:02:30
我正在尝试打印两个列表之间的公共元素,并且当我尝试使用 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 输出的末尾停止。
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

你有 UnsupportedOperationException。由于retainAllresize 集合,而Arrays.asList()返回不可调整大小的集合。

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

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


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 63 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信