我需要在java中合并两个字符串列表,我不太确定最好的方法。我必须使用迭代器和 compareTo() 方法。例如...
示例:L1:A、B、C、D L2:B、D、F、G 结果:A、B、B、C、D、D、F、G
我可以假设输入列表已经排序,我不能使用 contains() 方法。我有一些初步检查,但我坚持的是 while 循环。
public static ListADT<String> merge(ListADT<String> L1,ListADT<String> L2) throws BadListException {
ListADT<String> L3 = new ArrayList<String>;
if(L1 == null || L2 == null) {
throw new BadListException();
}
Iterator<String> itr1 = new L1.iterator();
Iterator<String> itr2 = new L2.iterator();
if(L1.size() == 0 && L2.size() == 0) {
return L3;
}
if(L1.size() == 0 && L2.size() != 0) {
for(int i = 0; i < L2.size(); i++) {
return L3.add(L2.get(i));
}
}
if(L2.size() == 0 && L1.size() != 0) {
for(int i = 0; i < L1.size(); i++) {
return L3.add(L1.get(i));
}
}
while(itr1.hasNext() || irt2.hasNext()) {
//merge the lists here?
}
}
任何帮助,将不胜感激。