JAVA:防止重复条目到ArrayList

 皇家陈小小2_328 发布于 2023-02-10 10:42

我正在尝试防止重复条目被添加到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的先前条目是否有重复项,并防止它们被添加,whist继续填充ArrayList?这个代码目前有什么问题?

如果有任何不清楚的地方,请询问任何问题,

提前致谢!

1 个回答
  • 使用LinkedHashSet然后将其转换为ArrayList,因为a 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]
    

    2023-02-10 10:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有