簡體   English   中英

如何顯示數組中特定項目的數量?

[英]How to display number of specific items in an array?

假設我有一個名為items的類,其代碼如下:

    import java.util.ArrayList;

public class items {
    private ArrayList<Item> itemlistweapons = new ArrayList<Item>();
    private ArrayList<Item> itemlistapparel = new ArrayList<Item>();
    private ArrayList<Item> itemlistaid = new ArrayList<Item>();
    private ArrayList<Item> itemlistmisc = new ArrayList<Item>();

    public void additem(String name, String type){
        if("Weapon".equals(type)){
            itemlistweapons.add(new Item(name, type));
        }
        else if ("Apparel".equals(type)){
            itemlistapparel.add(new Item(name, type));
        }
        else if ("Aid".equals(type)){
            itemlistaid.add(new Item(name, type));
        }
        else if ("Misc.".equals(type)){
            itemlistmisc.add(new Item(name, type));
        }
    }

    public void dropitem(String name){
        for(int i = 0; i < itemlistweapons.size(); i++){
            if(itemlistweapons.get(i).getname().equals(name)){
                itemlistweapons.remove(i);
            }
        }
        for(int i = 0; i < itemlistapparel.size(); i++){
            if(itemlistapparel.get(i).getname().equals(name)){
                itemlistapparel.remove(i);
            }
        }
        for(int i = 0; i < itemlistaid.size(); i++){
            if(itemlistaid.get(i).getname().equals(name)){
                itemlistaid.remove(i);
            }
        }
        for(int i = 0; i < itemlistmisc.size(); i++){
            if(itemlistmisc.get(i).getname().equals(name)){
                itemlistmisc.remove(i);
            }
        }
        }


    @Override
    public String toString(){
        String items = "";
        if (itemlistweapons.size() > 0){
            items += "Weapons\n";
        for (Item itemlist1 : itemlistweapons) {
            items += itemlist1 + "\n";
        }
        }

        if (itemlistapparel.size() > 0){
            items += "Apparel\n";
        for (Item itemlist2 : itemlistapparel) {
            items += itemlist2 + "\n";
        }
        }
        if (itemlistaid.size() > 0){
            items += "Aid\n";
        for (Item itemlist3 : itemlistaid) {
            items += itemlist3 + "\n";
        }
        }
        if (itemlistmisc.size() > 0){
            items += "Misc.\n";
        for (Item itemlist4 : itemlistmisc) {
            items += itemlist4 + "\n";
        }
        }
        return items;
    }

}

我希望能夠顯示該列表中特定項目的數量。

例如,對於我的基於文本的rpg游戲,玩家將25金塊添加到他的庫存中。 我不希望它在他的清單中顯示“黃金”一詞25次,而是顯示“黃金(25)”。 我將如何去做?

我對您的問題感到困惑...但是這里什么也沒有...

size()方法應該為您提供所需的內容。 它是ArrayList實現的Collection接口的一部分。

從JavaDoc:

int size()

返回此列表中的元素數。 如果此列表包含多個Integer.MAX_VALUE元素,則返回Integer.MAX_VALUE。

話雖如此,以下代碼演示了如何在實踐中使用此方法:

List<GoldCoin> gold = new ArrayList<GoldCoin>();
// Code ...
System.out.println("Gold (" + gold.size() + ")");

但是,似乎您在上面的代碼示例中已經使用了此方法。因此,我不確定這是否確實是您所需要的。

如果您想要一個數組列表中的物品數量,例如您擁有的武器數量,如果要計算某些特定的武器(例如您擁有多少把劍itemlistweapons.size()則可以簡單地使用itemlistweapons.size()如果當前武器是一把劍,同時循環瀏覽物品清單武器。 對於諸如黃金之類的東西,您不希望使用數組列表,因為變量就足夠了,只要得到一些黃金就可以增加。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM