如何在Java中创建一个关联列表?(How to create an associative lis

2019-09-17 23:22发布

我想有一个用户输入一个String搜索列表中的一个值。 这工作得很好,但我也希望String有一个数值。 这样我可以在列表中的价格一定的项目。 我试过了:

public List<String, double>

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

Answer 1:

你们只存储一个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"Cheese" ,你会得到的Product ,并和它所有的信息...

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


Answer 2:

使用地图。

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

然后,你可以使用Map#put(K, V)Map#get(K)把和获取值。

退房的地图文件也是如此。

从Java 7起,您可以省略构造函数的声明中的泛型类型:

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


文章来源: How to create an associative list in Java?