我是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);
}
}
答案 0 :(得分:0)
因为你传递空数组并试图在该空数组中设置输入。
delivery
这里,在上面的代码中,arr为null,将值添加到0 index将抛出nullpointer异常。因此,您必须根据给定的num size初始化数组。 即。
npm
重写功能:
for (int i = 0; i < num; i++) {
arr[i] = sc.nextInt();
}