gpt4 book ai didi

java - 我想编写一个函数来检查二维列表中的重复元素

转载 作者:行者123 更新时间:2023-12-04 10:35:58 25 4
gpt4 key购买 nike

我想编写一个函数来检查二维列表中的重复元素。例如: [[key1, key2], [key1, key3]] "key1"是重复的。我想删除或替换它,例如用 n\a。到目前为止我尝试过的。

    private static List<List<String>> removeRedundantStrings(List<List<String>> list) {

List<List<String>> outList = new ArrayList<>();

List<String> oneDimension = new ArrayList<>();

for (var tempList : list) {
for (var string : tempList) {

if (!oneDimension.contains(string))
oneDimension.add(string);

else
oneDimension.add("n/a");

outList.add(oneDimension);

}

}

return outList;

}


这个“解决方案”导致: [[key1, key2, n/a, key3]] - 不是“真正的”二维列表。我将如何实现与输入列表相同的格式?结果将是:[[key1, key2], [n/a, key3]]。我还缺少其他东西吗?

最佳答案

您应该在正确的位置创建内部 List - 在外部循环内。

此外,我会使用单个 HashSet跟踪 String s 已经出现了。

List<List<String>> outList = new ArrayList<>();
Set<String> uniques = new HashSet<>();

for (var tempList : list) {
List<String> oneDimension = new ArrayList<>();
for (var string : tempList) {
if (uniques.add(string)) // add will return true if string was actually added to Set
oneDimension.add(string);
else
oneDimension.add("n/a");
}
}
outList.add(oneDimension);
}

关于java - 我想编写一个函数来检查二维列表中的重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60183830/

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