Java - 使用多个类打印对象的ArrayList

时间:2017-12-01 21:09:15

标签: java object arraylist

我正在构建一个包含大量来自游戏(DnD 4e)的硬编码数据的大型程序。为了组织起见,我将其分解为不同的类(单独的.java文件)以避免10k +行无法创建的程序。我正在存储一个名为ArrayList的{​​{1}}个对象。每个Item都包含ItemString nameString price

问题在于,我将所有项目存储在一个方法String description中,而Item存储在另一个方法ArrayList<Item>中。如何打印InvList中的每个Item?我在数组方面更有经验,并且我意识到我可以使用for循环并只是遍历数组,但我并不知道为ArrayLists这样做的方法。

主要方法:

ArrayList<Item>

InvList方法,用于跟踪人员的库存及其管理方法:

public class DnD {
    . . .
    public static void main(String[] args) {
        . . .
        System.out.println("The inventory has "+inv.size()+" items.");
        inv.add(Item.Candle);
        printInv(inv);
    } //main()
} //DnD

项目方法,包含所有项目信息和管理方法:

public class InvList {
    public static ArrayList<Item> inv = new ArrayList<>();
    // I want to create multiples ArrayLists for multiple people, ...
    // ... so there will be several here.
} //InvList()

我所做的任何尝试都会导致打印哈希码或出错。我在这里查看了许多关于覆盖public class Item { . . . public String name; public String price; public String description; public static Item Candle = new Item("Candle", 1, "Provides dim light for 2 squares, and lasts for 1 hour."); public Item(String _name, double _price, String _desc) { name = _name; price = priceConverter(_price); //separate method, description = _desc; } //Item() . . . } //Item 以及未覆盖的帖子,但我还没有找到一个如何从其他课程中这样做的例子;如果一切都在 exact 相同的类/文件中,这些示例似乎都证明了如何做到这一点。我注定要为一切制作一个大型的大型文件吗?或者我可以在这里使用三个不同的类来打印这个类toString()吗?

旁注:如果我过度使用ArrayList<Item>字,请告诉我,我试图了解这里可接受的过度格式化。

1 个答案:

答案 0 :(得分:0)

正如您所提到的,可以使用toString方法将类哈希码转换为可读输出:

public class Item {
    @Override
    public String toString() {
        return "Name: " + name + ", price: " + price + ", description: " + description;
    }
}

打印ArrayList中的项目:

public class InvList {
    public static ArrayList<Item> inv = new ArrayList<>();
    for (Item item: inv) {
        System.out.println(item);
    }
}