【问题标题】:How to create an associative list in Java?如何在 Java 中创建关联列表?
【发布时间】:2012-06-13 13:49:28
【问题描述】:

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

public List<String, double>

但是这总是给我一个错误。如何存储字符串及其对应的数值?

【问题讨论】:

    标签: java list hashmap


    【解决方案1】:

    使用地图。

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

    然后,您可以使用Map#put(K, V)Map#get(K) 来放置和获取值。

    也请查看Map documentation

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

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

    【讨论】:

    • Map#get(k) 只会采用一个参数。即钥匙。
    【解决方案2】:

    您是只存储StringDouble,还是最终需要存储有关每个对象的更多信息?

    例如,您正在谈论存储名称和价格。如果这是针对类似购物的程序,您可能最好将每个产品的所有信息存储在一个新类中,然后将该类存储在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();
    

    【讨论】:

    • 哦,这更好。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2021-06-18
    • 2011-10-20
    相关资源
    最近更新 更多