在Java中创建简单数组时遇到问题
我在用Java创建一个简单数组时遇到了一些麻烦,在这个数组中,每次循环都会生成一个随机数。我的代码如下:在Java中创建简单数组时遇到问题,java,arrays,Java,Arrays,我在用Java创建一个简单数组时遇到了一些麻烦,在这个数组中,每次循环都会生成一个随机数。我的代码如下: public class Q1 { public static void main(String[] args) { Scanner listScan = new Scanner(System.in); System.out.println("Size of list to sort?"); int j = listScan.nextInt();
public class Q1 {
public static void main(String[] args) {
Scanner listScan = new Scanner(System.in);
System.out.println("Size of list to sort?");
int j = listScan.nextInt();
int listArray[] = new int[j];
for (int i = 0; i <= j; i++){
listArray[i] = (int)(Math.random() * 100 +1);
}
System.out.println(listArray);
}
注意:当您尝试访问大于数组长度的索引时,会出现ArrayIndexOutofBounds异常。您的索引太高了1个。使用
for (int i = 0; i < j; i++)
问题是,在Java中,数组是一个静态结构,当您添加元素时,它不会直接改变它的大小。您可以使用其他类型的对象,更适合作为ArrayList。查看代码的这一部分:
int listArray[] = new int[j];
for (int i = 0; i <= j; i++){
listArray[i] = (int)(Math.random() * 100 +1);
}
j=数组的长度,因此为3
for (int i = 0; i <= 3; i++){
j=3
使用此新代码,它将循环抛出0、1和2,与我们的数组0、1和2的大小相同。两个问题:
你是因为循环走了1个索引位置太远了。不能将实际j值作为索引位置。最后一个索引位置比长度小1。这样做:
for (int i = 0; i < j; i++){
for (int i = 0; i < j; i++) {
将for循环更改为int i=0时的该循环;i
for (int i = 0; i <= j; i++){
for (int i = 0; i < j; i++){
for (int i = 0; i <= j; i++){
for (int i = 0; i <= 3; i++){
for (int i = 0; i < j; i++){
for (int i = 0; i < 3; i++){
for (int i = 0; i < j; i++) {
System.out.println( Arrays.toString(listArray) );
// or iterate through the array
for (int i = 0; i < listArray.length; i++) {
System.out.println(listArray[i]);
}