-2

現在、購入プログラムを作成中です。私はそれでほぼ半分完了しました。私が必要とするのはそれだけです。購入のために 1 を押すと、インベントリに保存したアイテム コードを入力するオプションが表示されます。次に、在庫に保管されている製品に基づいて、入力したコードに対応するデータまたは値をそれぞれ表示します。

PS: 私は Java が初めてで、自分のコードがまだ基本的なものであることを知っています。私はまだ自分で Java を学んでいます。そして、私の変数はまだArraylistに変更されていません.Arraylistは、データのコレクションを格納する際にプレーンArrayよりもはるかに優れていることがわかりました。

どんな提案でも大歓迎です。Arraylist または Array の使用に固執します。ハッシュセットなどではありません..みんなありがとう!

皆さんが私を助けてくれることを願っています。ありがとう!

4

1 に答える 1

0
class Item {
    public final int sku;
    public final String desc;
    public final type other_fields;

    public Item(int s, String d, type fields...) {
        // set fields
    }
}

または、本当に賢くなりたい場合

abstract class Item {
    public final int sku
    // ....
}

class PinkCurtains extends Item {
    public PinkCurtains() {
        sku = 129534;
        desc = "Adorable Pink Indoor Curtains";
    }
}

class FuzzyTowel extends Item {
    public FuzzyTowel() {
        sku = 874164;
        desc = "Machine Washable Fuzzy Towel";
    }
}

次に、リストにデータを入力して検索します

ArrayList<Item> catalog = new ArrayList<Item>(0);

for (int i = 0; i < numItems; i++) {
    catalog.add(new Item(arg, arg, arg...));
}

// or

catalog.add(new PinkCurtains());
catalog.add(new FuzzyTowel());

for (Item item : catalog) {
    if (chosenItem == item.sku) {
        // do all your stuff
    }
}

これらは、理由により Iterables と呼ばれます。したくない場合は、クラスを作成する必要はありません。ArrayList には、次のような検索メソッド、contains() および indexOf() もあります。

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

途中でフィールドに入力したい場合は、それを可能にするクラスを作成できます。

class Item {
    public int id;
    public float price;
}

ArrayList<Item> cart = new ArrayList<Item>(0);

do {

    Item item = new Item();

    item.id = userInput;
    item.price = userInput;

    cart.add(item);

} while (userInputting);

float total = 0;

for (Item i : cart) {
    total += i.price;
}

// using a regular for loop instead of for-each

for (int i = 0; i < cart.size(); i++) {
    Item item = cart.get(i);

    // or search for something particular

    if (item.id == searchID) {
        System.out.println("found item " + item.id + " with price $" + item.price);
    }

    // equivalent to

    if (ids[i] == searchID) {
        System.out.println("found item " + ids[i] + " with price $" + prices[i]);
    }
}

ユーザーがアイテムを追加するたびに、新しいアイテムを作成し、フィールドに入力してリストに追加するだけです。

于 2013-10-20T03:41:12.787 に答える