在Collection中查找

时间:2012-10-26 23:49:08

标签: java collections arraylist

我对此问题感到非常厌倦,我不知道该怎么办。

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;
}
  • 问题在于 WITH FOR(x y:z)IF(),等等 工作
  • (如果我将删除整个FOR,似乎它有效,但我需要计算。)

  • 在课程操作中只有“名字”和“安装”的加号和设置。

    1. 解释
    2. 我读了一个文件。
    3. 我只从文件中读取主题。
    4. 我像操作一样加载(name = title,ammount =文件中的次数相同)
    5. 我把它交给ArrayList = IT DOESNT工作得很好!!!
    6. 从ArrayList到Set,那就是接口。
    7. GUI界面。

EDIT1:“线程中的异常”AWT-EventQueue-0“java.lang.NullPointerException”

我希望有人能理解,

感谢大家,

MmM ......

1 个答案:

答案 0 :(得分:1)

for循环中,您有以下这一行:

      line = reader.nextLine();

这没有对行存在的任何检查,因为你已经完成了条件 - &gt; reader.existsLine()。如果没有更多的行可供阅读,这使得它可以读取行,并且可能在while中失败或最后一个语句。

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

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