我有一个清单:
id num1 ...
-----------
1 123 ...
1 456 ...
2 789 ...
2 666 ...
并想基于它创建一个对象数组:
{ 1, [123, 456], [...] },
{ 2, [789, 666], [...] }
这是我的伪代码:
int previous_id = -1;
array a1 = null; // B
array a2 = null; // B
array a3 = null; // B
array a4 = null; // B
while (++c) { // c is a pointer pointing to the list
if (c.id != previous_id && previous_id != -1) {
j[i++].id = previous_id; // A
j[i++].data1 = a1; // A
j[i++].data2 = a2; // A
j[i++].data3 = a3; // A
j[i++].data4 = a4; // A
a1 = null; // B
a2 = null; // B
a3 = null; // B
a4 = null; // B
}
a1.add(c.num1);
a2.add(c.num2);
a3.add(c.num3);
a4.add(c.num4);
previous_id = c.id;
}
j[i++].id = previous_id; // A
j[i++].data1 = a1; // A
j[i++].data2 = a2; // A
j[i++].data3 = a3; // A
j[i++].data4 = a4; // A
它正在工作,但有一些冗余代码,即 A 和 B
是否可以合并它们以使其更简洁明了?