【发布时间】:2021-09-03 15:12:54
【问题描述】:
我已经创建了一个生成随机整数ArrayList() 的类:
import java.util.*;
public class RandomListGenerator {
public static void main(String[] args){
// Ask for an integer as user input.
Scanner input = new Scanner(System.in);
System.out.println("Please enter an integer between 1 and 10: ");
int inp = input.nextInt();
List<Integer> arr = genRandArrOfInts(inp);
System.out.println("Generated a list of random integers: "+arr);
}
public static List<Integer> genRandArrOfInts(int n) {
ArrayList<Integer> list = new ArrayList<>(n); // Create new ArrayList() of length n
Random r = new Random();
for (int i = 0; i < n; i++) {
list.add(r.nextInt(10 + 10) - 10); // We get random ints in range max = 10 and min = -10
}
return list;
}
}
当我自己运行这个类时,它工作正常,我得到这个输出:
Please enter an integer between 1 and 10:
10
Generated a list of random integers: [0, -1, -3, -8, -9, 1, 3, 0, 8, -1]
但是当我尝试在另一个类中使用它并像这样打印它时:
public class Lab2Array {
public static void main(String[] args){
randomListGenerator list = new randomListGenerator();
System.out.println("Generated this list of random integers: "+list);
}
}
我得到的输出是:
Generated this list of random integers: randomListGenerator@15aeb7ab
如何转换它以获得ArrayList<Integer>?我还需要在其他类中使用生成器,所以我想将它作为它自己的类而不是在lab2Array-class 中使用
【问题讨论】:
-
您需要调用创建列表的实际方法:例如
list.genRandArrOfInts(10)。如果您从不调用创建并返回随机整数列表的方法,那么这将永远不会自行发生。 -
由于该方法是静态的,因此您无需创建
randomListGenerator。您可以直接调用该方法,List<Integer> list = randomListGenerator.genRandArrOfInts(10)。顺便说一句,约定是类以大写字母开头,即RandomListGenerator -
根据 Java 约定,类名以大写字母开头。我修复了您问题中的代码。
-
小批评:您使用“Arr”命名令人困惑,因为它暗示了一个数组,但您使用的是
List而不是数组。 -
是的,我想要一个 ArrayList,但该方法给了我一个 List 对象,我不确定如何修复它,但我正在努力。
标签: java list intellij-idea arraylist