在HashMap,Java中的2D arrayList中不使用索引来添加值

时间:2015-09-15 06:16:42

标签: java arraylist hashmap

我对ArrayLists来说还是比较新的但是我需要它们用于这个模拟项目我是这样做的,如果你们能帮助我的话我会非常感激!

我有一个2D数组列表的HashMap,它应填充" value"和"时间"在基于String键的每次迭代模拟中。我将我的变量定义如下:

protected Map<String, ArrayList<ArrayList<Object>>> history = new HashMap<String,ArrayList<ArrayList<Object>>>();

,我将它初始化为:

for (String act:keySet)  
   history.put(act, new ArrayList<ArrayList<Object>>());

我的Map的每个ArrayList都有两个arrayList,在每次迭代中我应该添加我的&#34;值&#34;和&#34; time&#34;在每个arrayList中,所以我可以将我的数据及其各自的时间存储在一起,但我不知道如何使用key,在我们可以这样做的时候调用我的arraylist而不使用像普通arrayList中的索引:

tmpData.add("foobar"); // Example

任何帮助都将不胜感激。

瓦赫德

1 个答案:

答案 0 :(得分:1)

protected Map<String, ArrayList<ArrayList<Double>>> history = new HashMap<String,ArrayList<ArrayList<Double>>>();
    Double time=null;
    Double value=null;
    time2=null;
    ArrayList <Double> inner=null;
    for (String act:keySet){
      ArrayList<ArrayList<Double>> outer=null;
      if ((outer=history.get(act))==null)
      {
         outer= new ArrayList<ArrayList<Double>> ();
      }
       inner=new ArrayList <Double>();
       time= value1;//your value for this integer 
       value= value2;
       inner.add(time);
       inner.add(value);
       outer.add(inner);

       history.put(act, outer);
       }

在每次迭代中我们检查映射是否包含该键,如果是,我们添加一个新的,我们用新的时间对象填充内部ArrayList,然后我们将它添加到预先存在的外部ArrayList,然后我们更新外部的值与该键关联的ArrayList,如果它不包含该键,我们创建外部映射,内部映射和时间对象填充内部ArrayList,外部ArrayList,将外部ArrayList与键关联。