线程主 java.lang.NullPointerException 在 Runner.takeInput(Runner.java:24) 在 Runner.main(Runner.java:55) [重复]

Exception in thread main java.lang.NullPointerException at Runner.takeInput(Runner.java:24) at Runner.main(Runner.java:55) [duplicate]

提问人:UTKARSH JOSHI 提问时间:5/29/2023 最后编辑:UTKARSH JOSHI 更新时间:5/29/2023 访问量:42

问:

有一个名为“数组中的重复”的问题,我们需要找到一个在数组中出现两次的数字,其中元素数为 N,数组中存在 1 到 N-1 之间的所有元素。总有一个元素出现两次。

**我使用了一种简单的方法,对给定的数组进行排序,然后将每个元素与其下一个元素进行比较,如果它们匹配,则返回元素,否则增加指针。

用 Java 编写此代码**

import java.util.ArrayList;
import java.util.*;

public class Solution {

    public static int findDuplicate(ArrayList<Integer> arr) {

        //    Write your code here.
        Collections.sort(arr);
        int i=0;

            for(i=0;i<arr.size()-1;i++){

              if((arr.get(i))== (arr.get(i+1)))
              return arr.get(i);
          
            }
            return 0;
        

    }
}

我得到的错误或异常是这样的:

Exception in thread  main  java.lang.NullPointerException
    at Runner.takeInput(Runner.java:24)
    at Runner.main(Runner.java:55)
java arraylist nullpointerexception

评论

1赞 Sean F 5/29/2023
显示产生异常的代码。
0赞 Andreea Frincu 5/29/2023
您需要共享整个堆栈跟踪才能查看问题所在。

答:

0赞 Lore 5/29/2023 #1

因为在最后一步中,我认为 i+1 出界了。