【问题标题】:Retrieving Multiple values from hashmap从哈希图中检索多个值
【发布时间】:2013-01-28 02:51:23
【问题描述】:

Data Class 包含两个字段 price(double),operator(string),我将 Data 类作为多个值映射到 map 的每个键,如下所示 1)。

我无法在代码 2) 中显示。映射在同一个键下的所有值,

例如,对于 Key=1,map 的值为 Price {0.2,0.3,0.4} ,运算符:{A,B,C}

此代码的输出,只能显示价格= 0.2,运算符:A 表示键 1。未显示所有其他值。如何解决?

1) Map<Integer, ArrayList<Data>> mp = new HashMap<Integer, ArrayList <SortData>>();

2)

       ArrayList<Data> ls = mp.get (keys.get(k));

              int i=0;
            for ( Data e: ls)
            {           
     System.out.println(e.getOperator() + e.getPrice());
                i++;    
            }

在地图中添加数据的代码:

enter code here
     ArrayList<Test> list = new ArrayList<Test>();
      Map<Integer,ArrayList<Test>> mp = new HashMap<Integer,ArrayList<Test>>();
       list.add(new Data(0,1,"A"));
    list.add(new Data(0,2,"B"));
     mp.put(1,list);

  List<Test> value = mp.get(1);
  value.add(0.3,"c");
  value.add(0,5,"E");

【问题讨论】:

  • 你的意思是key=1,值是一个类似的列表:[(Price:0.2,Operator:A),(Price:0.3,Operator:B),(Price:0.4,Operator: C)?您可以添加代码来填充地图中的数据吗?

标签: java collections hashmap


【解决方案1】:

在您向地图添加值的代码中 - 编译错误。您不能将数据对象添加到 ArrayList。

您的迭代代码是正确的。所以我相信这些值根本不存在于地图中。因此,查看所有代码从列表中删除值。并确保在添加值代码中将值添加到存储在 Map 中的同一实例中。

尽管如此,要创建更少的错误电话代码,请考虑使用Guava MultiMap

【讨论】:

  • 你是对的,现在已经完成了。谢谢,我的输入不正确。
猜你喜欢
  • 2013-10-18
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多