私は友達と一緒にビデオゲームに取り組んでいます。さまざまなタイプのアイテムを説明するために、元々、Itemクラスを拡張する各アイテムのクラスがありました。これらのクラスには多くのデータがなかったので、ワークスペースがそれほど乱雑にならないように、別の方法を探していました。私はHashMapについて学び始めましたが、HashMapはアイテムを追加するための素晴らしい方法だと思いました。また、intを使用してHashMapのアイテムにアクセスする代わりに、基本的にはArrayListにするように設定することもできます。これにより、Stringsを使用してアイテムにアクセスできるようになります。そこで、この機能を追加し、Itemクラスに匿名のアイテムを作成し始めました。
private static Item coal = new Item() {
weight = .2;
setImageID(0, 16);
}
それらをHashMapに追加します。
itemMap.put("Coal", coal);
これらのいくつかを実行した後、リストには各タイプのアイテムが1つしかないことに気付きました。元のアイテムを変更せずに変更できるアイテムが複数ある場合は、コピーを作成する必要があります。私はそれを行う方法の研究を始めました。コピーコンストラクターを使用することもできますが、Itemには変数が多すぎるため、効率的に実行できません。確かにそれは可能でしたが、簡単な解決策があるのではないかと思いました。すべてのアイテムを最終的なものにできますか?私はこのプログラミング分野にまったく慣れていないので、ただ唾を吐いているだけです。私たちもこのすべてを間違ってやっている可能性があります。HashMapを使用して、リスト内の無期限のアイテムにアクセスするために使用できる「アイテムデータベース」のようなものを作成する方法が必要です。助言がありますか?