例外---我读了所有以前的答案,无法找出解决方案。请善解释我所做的错误并为其提供解决方案

时间:2016-11-04 05:02:37

标签: java arrays parameter-passing

我是java的新手。我编写了一个使用bubblesort算法对数组进行排序的程序。我有3种方法getArray()putArray()& sortArray()。我已经从main函数调用了所有这些方法,传递了no元素和一个数组作为参数。我已经将一个空数组传递给getArray()函数,并将该数组作为用户的输入。当我得到输入时,我得到例外。请帮助我。我真的被困了。

import java.util.Scanner;
public class BubbleSort {
    public void getArray(int num,int[]arr) {
        System.out.print("Enter the total number of elements in the Array :  ");
        Scanner sc = new Scanner(System.in);
        num = sc.nextInt();
        System.out.println(num);
        System.out.print("Enter " + num + " Elements  : ");
        for (int i = 0; i < num; i++) {
            arr[i] = sc.nextInt();
        }
    }
    public void putArray(int num,int[] arr) {
        System.out.print("The Array is:  ");        
        for (int i = 0; i < num; i++) {
            System.out.println(arr[i] + "  ");
        }
    }
    public void sortArray(int num,int[] arr) {
        for (int i = 0; i < num; i++) {
            boolean flag = false;
            for (int j = 0; j < num - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    arr[j] = arr[j] + arr[j + 1];
                    arr[j + 1] = arr[j] - arr[j + 1];
                    arr[j] = arr[j] - arr[j + 1];
                    flag = true;
                }
            }
            if (!flag) {
                break;
            }
        }
    }
    public static void main(String[] args) {        
        int num=0;
        int[] arr=null;
        BubbleSort b = new BubbleSort();
        b.getArray(num,arr);
        b.putArray(num,arr);
        b.sortArray(num,arr);
        b.putArray(num,arr);
    }
}

1 个答案:

答案 0 :(得分:0)

因为你传递空数组并试图在该空数组中设置输入。

delivery

这里,在上面的代码中,arr为null,将值添加到0 index将抛出nullpointer异常。因此,您必须根据给定的num size初始化数组。 即。

npm

重写功能:

for (int i = 0; i < num; i++) {
                arr[i] = sc.nextInt();
            }