import java.util.Arrays;
import java.util.*;
class Main {
public static void main(String[] args) {
}
}
class List {
private static final int NUMINTS = 10;
public List(int numints) {
int list[];
list = new int[NUMINTS];
}
public void fillWithRandom(int list[]) {
Random r;
r = new Random();
int i;
for(i=0; i < NUMINTS ; i++)
list[i] = r.nextInt();
}
public void print(int list[]) {
int i;
System.out.println("before sort():");
for(i=0 ; i < NUMINTS; i++)
System.out.println(list[i]);
Arrays.sort(list, 0, NUMINTS);
System.out.println("--------");
System.out.println("after sort():");
for (i = 0 ; i < NUMINTS; i++)
System.out.println(list[i]);
}
}
我想创建一个随机数组。我不太确定如何将我的类List中的方法实现到Main类中。我想要main来创建数组,然后将其打印出来。
答案 0 :(得分:1)
看起来你在int数组和你创建的名为List的类之间感到困惑。因为你似乎很自然地传递int数组,我建议删除List类(或将其作为你的类并在那里添加一个main方法)。
事实上,只需要创建一个int [10],用随机数填充它,然后在你的main方法中打印出来。这将使您可以快速测试,而无需担心类,实例化和方法调用。然后,一旦你有了这个,将这些操作中的每一个抽象回到方法中,并使用main中的调用方法。
如果方法不是静态的,那么除非在类的实例上调用它,否则不能直接从静态方法(main)调用它。例如,你不能调用List.print(int []),因为它不是静态的,所以你必须创建一个List对象,然后在该对象上调用print(int [])。
tl; dr我正在努力提供一些提示/建议,因为这看起来很像一个家庭作业问题。
答案 1 :(得分:0)
您的代码中的一个问题是您没有使用传递的参数
public List(int numints) { // numints never used, hence useless
int list[];
list = new int[NUMINTS]; // list is a local variable. It has no scope outside this
// method and the method also doesn't have any side-effect
}
现在,请问您如何在List
班级的Main
方法中调用main()
班级的方法。
public static void main(String[] args) {
List list = new List(10);
int[] intArr = new intArr[10];
list.fillWithRandom(intArr);
list.print(intArr);
}
很少有建议,
int[] arr;
而不是int arr[]
int[] intArr;
课程中应该有List
。因此,您无需来回传递intArr
NUMINTS