所以我对编程场景比较陌生,我很困惑为什么我的代码不起作用。我正在尝试制作arraylist
花,然后使用随机数生成器创建随机数量的某些花,并将它们存储在数组中。在我的逻辑中,我认为我创建了一个变量来存储数字(ex randomRoses
)并将数字存储在数组中,这样我就可以通过调用{{1来轻松打印出每个花的数量。和位置。 (ex arraylist
会打印出8朵玫瑰花)但遗憾的是它没有。
flowerArray[0]
答案 0 :(得分:1)
您可以使用相同的随机对象,无需为随机整数生成创建3个实例,
Random r = new Random();
for (int i = 0; i < 3; i++) {
flowerArray.add(r.nextInt(10));
}
System.out.println(flowerArray);
你不能flowerArray[0]
因为你有一个arrayList而不是一个数组。
你可以改为:flowerArray.get(0)
来获取零位的整数
答案 1 :(得分:1)
这里您的数组列表与类对象相关联。初始化数组列表时,需要将条目添加到构造函数本身的数组列表中。所以当你说object.printArray()它实际上返回空数组列表时,这就是你每次都得到0的原因。试试这个。
class Flower
{
private int randomRoses;
private int randomTulips;
private int randomOrchids;
public ArrayList<Integer> flowerArray;
public Flower()
{
Random r = new Random();
Random t = new Random();
Random o = new Random();
int randomRoses = (r.nextInt(10));
int randomTulips = (t.nextInt(10));
int randomOrchids = (o.nextInt(10));
System.out.println(randomRoses);
System.out.println(randomTulips);
System.out.println(randomOrchids);
flowerArray = new ArrayList<Integer>();
flowerArray.add(randomRoses); //flowerArray[0] is the # of roses
flowerArray.add(randomTulips); //flowerArray[1] is the # of tulips
flowerArray.add(randomOrchids); //flowerArray[2] is the # of orchids
}
public void printArray()
{
System.out.println(flowerArray.get(0));
}
}
public class Test {
public static void main(String[] args) {
Flower f = new Flower();
f.printArray();
}
}
在数组列表中,您可以使用 get(index)方法获取元素。
答案 2 :(得分:0)
这将提供您期望的输出。
public void printArray
{
System.out.println(flowerArray.get(0)+" Roses");
System.out.println(flowerArray.get(1)+" Tulips");
System.out.println(flowerArray.get(2)+" Orchids");
}
在定义arraylist的声明之后,你错过了一个分号。 进行更正:
flowerArray=new ArrayList<Integer>;
如果没有这种分号,它是如何编译的?
答案 3 :(得分:0)
它无法正常工作,因为获取第i个花的语法错误。 您正在使用java.util.ArrayList,因此从该ArrayList获取对象的正确方法是调用get()方法。
System.out.println(flowerArray.get(0));
希望有所帮助。