在Java中的HashMap中,如何在二维ArrayList中添加元素而不使用索引?

3

我对ArrayLists的使用比较新,但是我的模拟项目需要使用它们,如果你们能够帮助我,我将非常感激!

我有一个HashMap包含2D数组列表,在每次模拟迭代中,应该根据一个字符串键填充“value”和“time”。我定义变量如下:

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,在每次迭代中,我都应该将我的“value”和“time”添加到每个ArrayList中,这样我就可以将我的数据及其相应的时间一起存储。但是我不知道如何使用键名,在不使用索引的情况下调用我的ArrayList,就像在普通的ArrayList中可以这样做:

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

任何帮助都将不胜感激。
瓦希德

“Every ArrayList of my Map has two arrayList” 的意思是什么? - Karthik
我是说我有一个包含两个ArrayList的ArrayList,一个是"value",另一个是"Time"。 - vahid khoshdel
你最好重新措辞问题,或者添加一个例子来澄清你的需求。我理解了“map”部分和将包含两个ArrayList的ArrayList,但我不明白这两个ArrayList将包含什么内容。 - QuakeCore
所以基本上 ArrayList<Object> 的大小总是为 2,这就是你的意思吗? - Karthik
抱歉让大家感到困惑!我的哈希映射包含字符串键和ArrayLists,每个ArrayList实际上是2D的,用于存储两个值,即“时间”和相应的“值”,因此我的HashMap就像“data1”,{{0,1},{1,3},{3,-10},...}。“data2”,{{0,-4},{1,3},{2,12},...}。 - vahid khoshdel
1个回答

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与键关联。

感谢您的回答。 - vahid khoshdel
那个答案是基于我理解的,我不确定它是否符合您的要求,所以它符合吗? - QuakeCore
我在使用这段代码时遇到了错误。这里的Time类是什么?它实际上是之前定义的time1吗? - vahid khoshdel
不,我的内部ArrayList包含我的“时间”和“值”作为双精度数字进行存储。在这种情况下,你能帮我吗? - vahid khoshdel
@vahidkhoshdel 你明白我在这里试图实现什么吗?我相信你必须对上面的代码进行一些更改,以便它能够完全按照你的要求工作,如果你需要任何帮助,我可以提供。 - QuakeCore
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接