我试图让用户输入 aString
来搜索列表中的值。这工作正常,但我也希望String
有一个数值。这样我就可以得到清单价格中的特定项目。我试过:
public List<String, double>
然而,这总是给我一个错误。如何存储字符串及其对应的数值?
使用地图。
Map<String, Double> someMap = new HashMap<String, Double>();
然后,您可以使用Map#put(K, V)
andMap#get(K)
来放置和获取值。
也可以查看Map 文档。
从 Java 7 开始,您可以在构造函数的声明中省略泛型类型:
Map<String, Double> someMap = new HashMap<>();
您是只存储 aString
和 a 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
and 以及它的所有信息......
Product cheese = products.get("Cheese");
double price = cheese.getPrice();