从另一个类的列表中访问max元素 - JAVA

时间:2014-06-14 18:50:38

标签: java

出于教育目的我试图理解如何通过另一个类(例如A类)访问列表的最大元素(最初在B类中)(在本例中是从Double列表中)。该列表用于不同的类中元素被添加到它(例如C类)。但是,当我向我的类A添加这样的东西来访问我的Max元素时,它似乎不起作用://得到帮助:)我通常得到的错误是noSuchElementException

只是A类的方法

void printMax () {

    B b = new B();
    Double result;
    result = Collections.max(b.array);
    System.out.println("MAX:" +result);
    }

这是我的班级B:

public class B {

public ArrayList<Double> array;

    B() {           
        array = new ArrayList<Double>();
    }

    public void doSomething() {
                    int i;          
            for(i = 0; i < array.size(); i++) {

            System.out.println("Doubles:" +array.get(i));

            }                           
    }   

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new B().doSomething();
    }

}

这是我的C类添加到我的ArrayList。

Class C {
public String line;


C () {  

}

public void linePicker() {

    B b = new B();          

    Scanner dScanner = new Scanner(line);
    while (dScanner.hasNext()) {
        if (dScanner.hasNextDouble()) {             
            b.array.add(dScanner.nextDouble());                                             
            break;
        } else {
            dScanner.next();
        }
    }       
    dScanner.close();

    b.doSomething();

}
public static void main(String[] args) {
    // TODO Auto-generated method stub

    new C().linePicker();
}

}

1 个答案:

答案 0 :(得分:0)

根据javadocs(http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#max(java.util.Collection,%20java.util.Comparator)),它会在Collection为空时抛出该异常。你初始化b.array,但在调用max()之前还没有添加它。