我有两个Java列表(如在实际的类中),其中每个列表都具有编号列表和级别的元素,表示为String对象。以下每行都是列表中的单独字符串。例如,第一个列表可以是:有效的Java列表合并算法
==level 1==
1.1 2
==level 2==
1.R4 0
2.0 2
==level 3==
3.R3 1
4.R5 1
和第二可能是:
==level 3==
1.null
2.null
列表可以各自为任何长度和数量后的值并不重要位置。目标是合并匹配级别的列表。例如,两个列表的合并上面会:
==level 1==
1.1 2
==level 2==
1.R4 0
2.0 2
==level 3==
1.null
2.null
3.R3 1
4.R5 1
两个列表的匹配水平的数字将永远是相同的,所以不需要检查不。我也相信这些数字将始终是连续的。这是迄今为止我所拥有的,但并不包括所有的情况,特别是当合并只发生在一个层次的开始时,或者只发生在最后。看看也很不愉快。 tempLines和lines是两个列表。
for(int x=0; x < lines.size();x++){
for(int y=0; y < tempLines.size();y++){
if(tempLines.get(y).equals(lines.get(x)) && !(tempLines.get(y).equals("\n"))&& !(lines.get(x).equals("\n"))){
int a=y+1;
int b=x+1;
while(!(tempLines.get(a).equals("\n"))){
while(!(lines.get(b).equals("\n"))){
if(Integer.valueOf(tempLines.get(a).charAt(0))==(Integer.valueOf(tempLines.get(a).charAt(0))-1))
lines.add(b,tempLines.get(a));
}
}
}
}
}
有人能帮忙吗?
两个输入列表是否始终按照级别*和*号码升序排序? – lost 2013-03-21 19:43:21
是的,就是这样。 – 2013-03-21 20:23:38
我很好奇为什么这个数据是作为字符串数据处理的,而不是被转换成Java对象。 – 2013-03-21 21:14:15