我随机生成了一系列信息。我想将这些信息保存在某种变量中,以便可以在别处调用。我想想我想使用一个ArrayList,但我不确定如何在for循环中(在创建它的地方)添加信息。我的代码如下:
public static ArrayList<String> phoneList
public static void main(String[] args){
Random randomNumber = new Random();
int howMany = randomNumber.nextInt(11);;
String holding;
for (int i=0; i < howMany; i++){
int itemRandNum = randomNumber.nextInt(11);//for all Item Categories
int priceRandNum = randomNumber.nextInt(11);//Prices for all categories
holding = phones[itemRandNum]+" $"+ priceOfPhones[priceRandNum];
//System.out.println(holding);
phoneList.add("holding"); //here is where I would like to add the information
//contained in "holding" to the "phoneList" ArrayList.
}
System.out.println(phoneList);
}
我收到NullPointerException。如果ArrayList不是最好用的,那会是什么?
您可以提供的任何帮助表示赞赏。
答案 0 :(得分:0)
您得到NullPointerException
,因为ArrayList phoneList
为空,因为您没有初始化它。因此写
public static ArrayList<String> phoneList = new ArrayList<>();
答案 1 :(得分:0)
public static void String Main(String[] args)
表示这与Android没什么关系。
首先,实例化列表(在for
循环之外):
phoneList = new ArrayList<>(howMany); //Adding "howMany" is optional. It just sets the List's initial size.
然后,添加值:
for (int i = 0; i < howMany; i++) {
//...
phoneList.add(holding);
//Don't place holding in quotation marks, else you'll just add "holding" for every entry!
}
答案 2 :(得分:0)
因为它只是声明类ArrayList没有实例化它。你有必要一直使用一个类来创建同一个类的实例,这很简单,只需: public static ArrayList phoneList = new ArrayList()(如果你运行的是旧版本的java),否则使用public static ArrayList phoneList = new ArrayList&lt;&gt;()。