オブジェクトのリストがあり、id に対応するランダムなユーザー入力に基づいて特定のオブジェクトにアクセスする必要があります。この時点での私の限られた知識は、次のようなものにつながりました。
String id;
if(id.equals("apple")){ //fixed silly error, thanks
return objectList.id.memberName;
} //etc...
これは可能ですか、それともより良いアプローチがありますか?
オブジェクトのリストがあり、id に対応するランダムなユーザー入力に基づいて特定のオブジェクトにアクセスする必要があります。この時点での私の限られた知識は、次のようなものにつながりました。
String id;
if(id.equals("apple")){ //fixed silly error, thanks
return objectList.id.memberName;
} //etc...
これは可能ですか、それともより良いアプローチがありますか?
HashMapが必要なようです。
これは電話帳のように機能します。キーと値を入力し、キーを使用して値を検索します (電話帳で誰かの名前を使用して番号を検索するのと同じように)。
if ステートメントで = を使用しているため、この例もまったく機能しません。これは、等価チェックではなく代入ステートメントです。== はおそらく取得しようとしていたものですが、この場合はそれも使用しないでください。代わり.equals()
に、文字列が関係する場合は常に使用する必要があるものを使用してください.)
HashMap<String, SomeValueObject> myMap = new HashMap<String, SomeValueObject>();
myMap.put("apple", value);
String id;
if (id.equals("apple")) {
return myMap.get("apple");
}
基本的に、2 つの部分を持つ HashMap をインスタンス化します。キーと値(それぞれ。私が行うmyMap.get("apple")
と、キー「リンゴ」が検索されます。myMap.put("apple", value)
これにより、キー「リンゴ」が必要な特定の値にマップされます。
id.equals("apple")
また、文字列はオブジェクトであるため、使用する必要があります。試してみた場合id == "apple"
(意図したと思います)、文字列の値ではなくアドレスを比較するため、機能しません。
@ berry120 が実用的な回答を提供してくれました。一般に、何らかのキーに基づいて値を検索したいようです。Mapインターフェースと、具体的な実装のために JDK が提供するものを見てください。
変数の値は、実行時にのみ使用できます。一方、変数名はコンパイル時にわかっている必要があります。いいえ、あなたが求めているとおりにこれを行うことはできません。を使用するMap
ことは、おそらくあなたの問題に対する最良の解決策です。