gpt4 book ai didi

JAVA:防止 ArrayList 的重复条目

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:31 25 4
gpt4 key购买 nike

我试图防止在读取文件的每一行时填充列表时将重复条目添加到 ArrayList 中。文件的每一行都采用“node1 node2”(制表符分隔符)格式。此处的副本可以是“node1 node2”或“node2 node1”。这是我尝试执行此操作的代码:

while((line = bufferedReader.readLine()) != null) {

String delimiter = "\t";
String[] tempnodelist;
tempnodelist = line.split(delimiter);

for (int i=0; i <= edgesnumber; i++) { //edgesnumber = edges.size()

if (tempnodelist[0] && tempnodelist[1] != edges.get(i)) {

edges.add(line);

}
}

nodes.add(tempnodelist[0]);
nodes.add(tempnodelist[1]); //intial intended use of tempnodelist.

因为我已经将每一行拆分为每个节点的 HashSet,所以我试图用它来检查重复项。目前我似乎无法正确使用语法。如何检查 ArrayList 的先前条目是否有重复项,并防止添加它们,同时继续填充 ArrayList?目前这段代码有什么问题?

有什么不明白的地方欢迎提问

提前致谢!

最佳答案

使用 LinkedHashSet然后将其转换为 ArrayList ,因为 LinkedHashSet 具有可预测的迭代顺序(插入顺序)并且它是 Set .

例如

LinkedHashSet<String> uniqueStrings = new LinkedHashSet<String>();

uniqueStrings.add("A");
uniqueStrings.add("B");
uniqueStrings.add("B");
uniqueStrings.add("C");
uniqueStrings.add("A");

List<String> asList = new ArrayList<String>(uniqueStrings);
System.out.println(asList);

会输出

 [A, B, C]

关于JAVA:防止 ArrayList 的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20611751/

25 4 0