Java で文字列の 2 つのリストをマージする必要がありますが、それを行う最善の方法がよくわかりません。イテレータと 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?
}
}
どんな助けでも大歓迎です。