Java 在集合中查找时编辑

Java 在集合中查找时编辑,java,collections,arraylist,Java,Collections,Arraylist,我真的很累了,我不知道该怎么办 import ... class ... private ArrayList <Operation> operationList = new ArrayList<Operation>(); @Override public Collection<String> lineList() { Set <String> groupOperation = new HashSet<String>();

我真的很累了,我不知道该怎么办

import ... 
class ...

private ArrayList <Operation> operationList = new ArrayList<Operation>();

@Override
public Collection<String> lineList() {
    Set <String> groupOperation = new HashSet<String>();
    Operace newOperation= null;

    LogFileReader reader = new LogFileReader(nameFile);
    LogEntry line = reader.nextLine();

    while(reader.existsLine()) {
        for(Operation whatever2: operationList) {
            if(line.getOperation().equals(whatever2.getName())) {
                whatever2.setAmmount(whatever2.getAmmount()+1);
                line = reader.nextLine();
            }
        }
        newOperation = new Operation(line.getOperation());
        newOperation.setAmmount(1);
        groupOperation .add(newOperation);
        line = reader.nextLine();
    }
    ....
    return groupOperation;
}
导入。。。
类。。。
私有ArrayList操作列表=新建ArrayList();
@凌驾
公共集合行列表(){
Set groupOperation=new HashSet();
Operace newOperation=null;
LogFileReader=新的LogFileReader(名称文件);
LogEntry行=reader.nextLine();
while(reader.existsLine()){
用于(操作内容2:操作列表){
if(line.getOperation().equals(whatever2.getName())){
whatever2.setamount(whatever2.getamount()+1);
line=reader.nextLine();
}
}
newOperation=新操作(line.getOperation());
newOperation.setamount(1);
groupOperation.add(newOperation);
line=reader.nextLine();
}
....
返回操作;
}
  • 问题出在使用FOR(xy:z)IF()时,还有其他事情 工作
  • (如果我将删除整个,似乎它是有效的,但我需要计算。)

  • 在类操作中,只有“name”和“amount”的GETTER和SETTER

  • 解释
  • 我读了一份文件
  • 我只读文件中的主题
  • 我像操作一样加载它(name=title,amount=file中相同的次数)
  • 我把它给ArrayList=它不太好用
  • 从ArrayList到Set,这就是接口
  • 与GUI的接口
EDIT1:“线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常”

希望大家都能理解,

谢谢大家,


嗯…

在您的
for
循环中,您有以下行:

      line = reader.nextLine();
这不会像您在while条件->
reader.existsLine()
中所做的那样,对行存在性进行任何检查。这样就可以读取行,如果没有更多行可读取,则可能会在此处或
中的最后一条语句中失败

我不确定,您真的想读取
for
循环中的行。如果是,将if条件包装为:

       if(reader.existsLine()){
          line = reader.nextLine();
       }

您需要发布一个SSCCE()。这将帮助你获得更好的答案,让人们理解你的问题。请发布完整的stacktrace。感谢回复。你说得对。我是瞎子,我看了它一个小时,什么都没有。非常感谢。