我有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
次执行和开发此迭代?
非常感谢。
答案 0 :(得分:1)
由于Double
同时属于final
和immutable
,因此您必须将Double
封装在自定义类中,并且值为&#39;例如。然后,每次进行求和时,您都会更新Double
课程中的Value
字段。因此,只会更新Value
中results
类型的对象。
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
代替。