3

Stringリスト内の値を検索するために、ユーザーに a を入力させようとしています。これは問題なく動作Stringしますが、数値も必要です。このようにして、リスト価格で特定のアイテムを取得できます。私は試した:

public List<String, double>

ただし、これにより常にエラーが発生します。文字列とそれに対応する数値を格納するにはどうすればよいですか?

4

2 に答える 2

9

マップを使用します。

Map<String, Double> someMap = new HashMap<String, Double>();

次に、 and を使用Map#put(K, V)Map#get(K)て値を入れたり取得したりできます。

マップのドキュメントも参照してください。

Java 7 以降では、コンストラクターの宣言内でジェネリック型を省略できます。

Map<String, Double> someMap = new HashMap<>();
于 2012-06-10T06:48:29.497 に答える
5

と のみを格納しStringますDoubleか?それとも、最終的に各オブジェクトに関するより多くの情報を格納する必要がありますか?

たとえば、名前と価格の保存について話しているとします。これがショッピングのようなプログラムの場合は、各製品のすべての情報を新しいクラスに格納し、そのクラスをHashMap. 例えば..

// Class for your product and all related information...
public class Product {
    String name;
    double price;
    String color;
    double weight;

    public Product(String name, double price, String color, double weight){
        this.name = name;
        this.price = price;
        this.color = color;
        this.weight = weight;
    }
}

// Now add each Product to a HashMap (in your main class)...
HashMap<String,Product> products = new HashMap<String,Product>();
products.put("Cheese", new Product("Cheese",1.10,"Yellow",0.5);
products.put("Milk", new Product("Milk",2.0,"White",1.5);

HashMapその後、 forを照会できるようになり、そのすべての情報を"Cheese"取得できます...Product

Product cheese = products.get("Cheese");
double price = cheese.getPrice();
于 2012-06-10T06:54:46.063 に答える