java中链表中的迭代求和

时间:2014-08-21 16:02:35

标签: java linked-list fixed-point

我有3个链表,在java中有这个值:

    LinkedList<Double> simTarget = new LinkedList<Double>();
    LinkedList<Double> simSource = new LinkedList<Double>();
    LinkedList<Double> results = new LinkedList<Double>();   

    simTarget.add(0.5);
    simTarget.add(0.1); 
    simTarget.add(1.0); 

    simSource.add(0.5); 
    simSource.add(0.1);
    simSource.add(1.0);

我需要在这些列表中执行迭代求和,并将结果存储在&#34;结果&#34;中,例如:

for (int i = 0; i < simTarget.size(); i++)
{
    for (int j = 0; j < simSource.size(); j++)
    {           
     results.add((simTarget.get(i) + (simSource.get(j) * 0.5)/3));              
    }
}

所以,这是我的问题:使用链接列表&#34;结果&#34;是我需要再次执行一个新的迭代,但使用相同的simSource值,如下所示:

for (int i = 0; i < results.size(); i++)
{
    for (int j = 0; j < simSource.size(); j++)
    {
         System.out.println(results.get(i) + (simSource.get(j) * 0.5)/3);
    }
}

这个迭代需要在&#34; x&#34;中执行(自身)次数,例如:70次或80次或1000次。只是&#34;结果的价值和#34;链表应该增加。

如何按x次执行和开发此迭代?

非常感谢。

1 个答案:

答案 0 :(得分:1)

由于Double同时属于finalimmutable,因此您必须将Double封装在自定义类中,并且值为&#39;例如。然后,每次进行求和时,您都会更新Double课程中的Value字段。因此,只会更新Valueresults类型的对象。

for(int x = 0;x< 1000;x++){
    for (int i = 0; i < results.size(); i++)
    {
        for (int j = 0; j < simSource.size(); j++)
        {
            Value buffer = results.get(i);
            buffer.doubleField += (simSource.get(j) * 0.5)/3;
            //System.out.println(results.get(i) + (simSource.get(j) * 0.5)/3);
        }
    }
}


顺便说一句,由于您要按索引访问LinkedList,最好使用ArrayList代替。