我想比較同一列表中的元素。如果元素不等於增量計數器,並且它們相等,則計數器保持不變。我有一些正確的問題。 我的名單看起來是這樣的(這些只是由值測試的緣故):比較單個ArrayList中的值並使用java爲其分配新值
List<Double> sample = new ArrayList<Double>();
sample.add(110.00);
sample.add(90.00);
sample.add(90.00);
sample.add(20.00);
sample.add(20.00);
,我需要得到結果爲
[1, 2, 2, 3, 3].
這是我到目前爲止,我有嘗試兩種不同的方式。
Double count = 1.0;
for(int i = 0; i < sample.size()-1; i++)
{
Double first = sample.get(i);
Double second = sample.get(i+1);
if(first.equals(second))
{
sample.set(i, count);
}
else
{
sample.set(i, count++);
}
}
此打印:
[1.0, 2.0, 2.0, 3.0, 20.0]
我不知道怎麼去比較,去年的兩倍。我知道我沒有檢查列表的大小,因爲我有size() - 1,但我會得到索引超出界限的異常。 第二種方法是:
for (int i = 0; i < sample.size()-1; i++)
{
for(int j=i+1; j < sample.size(); j++)
{
if(sample.get(i)==sample.get(j))
{
sample.set(i, count);
}
else
{
sample.set(i, count++);
}
}
}
這將打印:
[6.0, 8.0, 10.0, 11.0, 20.0]
我知道我在循環兩次,但可以在什麼地方進行調整。
你只比較連續元素? – brso05 2014-09-24 20:38:19
在第一個例子中,它應該用3.0代替20。我沒有添加其他計數++,如果它們不相等,它們將增加。 – 2014-09-24 20:42:43
嘗試我發佈它應該爲你所說的工作。 – brso05 2014-09-24 20:50:20