如何在Java中创建一个关联列表?

3

我正在尝试让用户输入一个 String 来搜索列表中的值。这很好用,但我还想让 String 具有数字值。这样我就可以得到列表中特定项目的价格。我尝试过:

public List<String, double>

然而这总是给我一个错误。我该怎么存储字符串及其对应的数值?

2个回答

9
使用地图。
Map<String, Double> someMap = new HashMap<String, Double>();

然后,您可以使用Map#put(K, V)Map#get(K)来放置和获取值。
还可以查看Map文档
从Java 7开始,您可以在构造函数声明中省略泛型类型:
Map<String, Double> someMap = new HashMap<>();

Map#get(k) 只接受一个参数,即键。 - Akhi

5
你只存储了一个字符串和一个双精度浮点数吗?或者你最终是否需要存储更多关于每个对象的信息?
例如,你正在考虑存储名称和价格。如果这是为一个类似购物的程序,你最好为每个产品存储所有的信息在一个新类中,然后将该类存储在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 以获取 "Cheese",然后您将获得 Product 和所有相关信息...

Product cheese = products.get("Cheese");
double price = cheese.getPrice();

1
哦,这甚至更好。谢谢! - Zach Sugano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接