【问题标题】:Best approach to have multiple key-value pairs, in a Value of an outer key在外键的值中具有多个键值对的最佳方法
【发布时间】:2017-05-18 02:54:00
【问题描述】:

我正在尝试创建一个字典类型记录,例如保存 key="Book name" 和 value= (key="price": $250, key="qty": 10)。实现这一目标的最简单方法是 Java 吗?我已经尝试为它们的值创建一个单独的类对象。

public class book_info {
int price = 0;
int qty = 0;

public void  book_info(int qty, int price){
    this.qty = qty;
    this.price = price;
    }
}

并创建一个 HashMap 实例;

Map <String, book_info> items = new HashMap<String, book_info>();
items.put("Book1", new book_info(600, 20));
items.put("Book2", new book_info(200, 30));
items.put("Book3", new book_info(100, 50));

这很好用,但是有没有其他替代方法,不使用单独的类对象,而是像这样在 HashMap 的初始化中添加多个键值对;

Map <String, <<String, Integer>,<String, Integer>>> items = new HashMap<String, <<String, Integer>,<String, Integer>>>();

【问题讨论】:

  • 您最好的方法是使用 OO 并对域进行建模,就像您开始做的那样。但是,我还要为 BookInfo 对象添加一个标题。它还为您在未来提供了更大的灵活性。
  • 我认为您正在寻找Map&lt;String, Map&lt;String, Integer&gt;&gt;。但是你现在拥有的要好得多。

标签: java hashmap key-value


【解决方案1】:

您的问题可能已经得到回答,您尝试做的是使用对象作为映射键,因此您希望拥有 [object1, object2] 而不是拥有 [key, object] 并且每个对象都可以是地图其中最后将使它们成为 [[key1, value1][key2, value2]] 有关使用对象作为键的更多详细信息,请参阅答案:

Using an instance of an object as a key in hashmap, and then access it with exactly new object?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多