我正在尝试生成可变数量的arrayLists和列表中的可变数量的项目。这意味着我不能使用数组而不是arrayList。
在数组中生成JLabel时,请使用for循环并说:
label[i]=new JLabel();
arrayList有可能吗?
我无法提交代码,因为它太长了,但我会给您一个大致的想法:在txt中,有多个对象,在这种情况下,是部队:长弓手,武装人员,骑士...每1股相同的统计信息(ArrayLists),但每个属性都有不同的值。我拥有它,以便一旦bufferedReader拥有一支队伍,它将把所有的数组列表发送到另一个类,并继续读取和覆盖旧部队的统计信息(它们现在存储在另一个类中)。问题是,另一类如何区分统计数据?如果部队人数不变,这将很容易,但是事实并非如此。那我该怎么做呢?
编辑:这是一些源代码:
while ((text = reader.readLine()) != null) {
StringTokenizer troops = new StringTokenizer(text, "=");
String list = troops.nextToken();
String value = troops.nextToken();
else if (list.equals("Done")) {
troop trooper=new troop();
trooper.troopLoaded(kingdom,lord,troop,troopAmount,weapon,animal);
}
/////
兵种:
public void troopLoaded(ArrayList<String> kingdom,ArrayList<String> lord,ArrayList<String> troop,ArrayList<String>,troopAmount,ArrayList<String> weapon,ArrayList<String> animal) {
System.out.println(kingdom);
System.out.println(lord);
System.out.println(troop);
System.out.println(troopAmount);
System.out.println(weapon);
System.out.println(animal);
}
我如何给部队类的数组列表而不会在部队类中覆盖它们呢?
最佳答案
import java.util.ArrayList;
import java.util.List;
class Item {
private name;
public String getName() {
return name;
}
private void setName(String name) {
this.name = name;
}
public class ItemManager {
public static List<ArrayList<Item>> megaList;
public static void main(String args) {
megaList = new ArrayList<ArrayList<Item>>();
ArrayList<Item> someItems = new ArrayList<Item>();
someItems.add(new Item());
someItems.add(new Item());
megaList.add(someItems);
for(ArrayList<Item> list : megaList ) {
for (Item item : list) {
String nameOfItem = item.getName();
}
}
}
然后,您可以在megaList内部进行迭代,并在someItems内部进行递归迭代。