import java.util.List;
import java.util.ArrayList;
public class Test{
public static void main(String args[]) throws Exception{
int[] al1 = {3,5,8,11,12};
int[] al2 = {2,8,9,11,15,20};
List<Integer> newAl = new ArrayList<Integer>();
int innerVal = 0;
outer:for(int i=0; i<al1.length; i++){
inner:for(int j=innerVal; j<al2.length; j++){
// 外层循环结束的情况下,将内存循环所有元素都加入到指定集合中
if(i == al1.length-1){
newAl.add(al2[j]);
continue inner;
}
if(al1[i] < al2[j]){ // 外层小
newAl.add(al1[i]);
innerVal = j;
continue outer;
}else if(al1[i] == al2[j]){ // 内外层相同
if(j == innerVal){
newAl.add(al2[j]);
continue outer;
}else{
newAl.add(al1[i]);
continue inner;
}
}else{ // 内层小
newAl.add(al2[j]);
continue inner;
}
}
// 内层循环结束的情况下,将外层循环的元素全部加到指定的集合中
if(newAl.get(newAl.size()-1) < al1[i]){
newAl.add(al1[i]);
}
}
System.out.print(newAl);
}
}