现在,我有一个包含以下代码的程序:

if(Highest6.y == 0){
    if(G.y == Collections.min(YUpper) && !notdone){     Highest6 = G;    YUpper.remove(Integer.valueOf(G.y));   notdone = true;}
}


运行它时,出现以下错误:
javascript - Android Collections.min NoSuchElementException-LMLPHP

最有趣的是,我有相同的片段,它们出现在不同的HighestX.y语句中(我有六个)。并且此错误仅在最后一个错误中发生。有人知道为什么这种情况持续发生吗?提前致谢。

这是我列表的代码:

 List<Integer> YPoint = new java.util.ArrayList(Arrays.asList(A.y, B.y, C.y, D.y, E.y, F.y, G.y, K.y, Q.y, L.y, M.y, N.y));
        List<Integer> YUpper = new java.util.ArrayList(Arrays.asList());
int Classified = 0;
    int Highest = 0;


    while(Classified != 6){
        Highest = Collections.min(YPoint);
        YPoint.remove(Integer.valueOf(Highest));
        YUpper.add(Integer.valueOf(Highest));
        Classified++;
    }

最佳答案

我认为问题在于您的收藏集为空。从documentation of Collections分钟返回:


  NoSuchElementException-如果集合为空


也就是说:您的yUpper Arraylist为空:

Collections.min(YUpper)


它是空的,因为您永远不会进入while循环:

    while(Classified != 6){


由于classified为0

样式说明:将camelCase用于变量和方法。这就是编写Java代码的方式。不是MyVar,而是myVar。让Java人士更容易阅读。

07-24 19:19
查看更多