我正在尝试生成可变数量的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内部进行递归迭代。

10-07 22:26