同じタイプの 2 つの arrayList があり、ValueList の特定の属性に基づいて 2 つを比較したいと考えています。値リスト
ValueList A contains
1,10,5,
2,20,3
3,40,5,
4,60,8
ValueList B contains
2,20,3
3,40,5
line_num に基づいて両方のリストを比較し、別の arraylist Result を作成します。line_num が ValueList A に存在し、ValueList B には存在しない場合、結果の値フィールドには -1 が必要です。結果は次のようになります。
Result
10,-1
20,3
40,5,
60,-1
「Not Found」条件を書き込めません。誰か助けてくれませんか?
私のコード
List<Result> result= new ArrayList<Result>();
for(ValueList data1: valueListA) {
for (ValueList data2: valueListB) {
Result inter = new Result();
if(data1.getLine_num==data2.getLine_num) {
inter.setKey(data1.getKey());
inter.setValue(data1.getValue());
result.add(inter);
}
}
}
動作する更新されたコード:
public static List<Result> result;= new ArrayList<Result>();
....
int i1 = 0,int i2 = 0;
Result inter = new Result();
while (i1 < valueListA.size() && i2 < valueListB.size()) {
ValueList data1 = valueListA.get(i1);
ValueList data2 = valueListB.get(i2);
if (data1.getLine_num == data2.getLine_num) {
// Add the result.
result= new ArrayList<Result>();
inter.setValue(data1.getValue());
inter.setKey(data1-getKey())
result.add(inter);
i1++;
i2++;
} else if (data1.getLine_num < data2.getLine_num) {
result= new ArrayList<Result>();
// Add -1 because the data was not in valueListB.
inter.setValue(data1.getValue());
inter.setKey(-1);
result.add(inter);
i1++;
} else {
i2++;
}
}