1. 程式人生 > >編寫一個交錯合併列表元素的函式,兩種方法

編寫一個交錯合併列表元素的函式,兩種方法

//編寫一個交錯合併列表元素的函式。例如:給定的兩個列表為[a,B,C]和[1,2,3],函式返回[a,1,B,2,C,3]。 

privatestatic String[] getStaggeredMergeArray(String[] arr1, String[] arr2)

{ String[] arr = new String[arr1.length + arr2.length];  

int i, j; for (i = 0, j = 0; i < arr1.length; i++) {  

j = 2 * i;  

if (j > 2 * arr2.length)

//若arr1陣列長度長等於arr2

j = arr2.length + i;  

arr[j] = arr1[i];//0 2 4 }  

for (i = 0, j = 0; i < arr2.length; i++) {  

j = 2 * i + 1;  

if (j > 2 * arr1.length)//若arr2陣列長度長等於arr1

j = arr1.length + i;  

arr[j] = arr2[i];//1 3 5 }

return arr;}

publicstaticvoidmain(String[] args) {  

String[] arr1 = {

"a", "B", "c", "D", "e" };  

String[] arr2 = { "1", "2", "3" };  

String[] arr = getStaggeredMergeArray(arr1, arr2);  

System.out.println(Arrays.toString(arr));}

  1. import java.util.*;  
  2. publicclass Test2{  
  3.     publicstaticvoid main(String[] args){  
  4.         ArrayList<Object> a1=new ArrayList<Object>();  
  5.         ArrayList<Object> a2=new ArrayList<Object>();  
  6.         a1.add('a');  
  7.         a1.add('B');  
  8.         a1.add('C');  
  9.         a2.add(1);  
  10.         a2.add(2);  
  11.         a2.add(3);  
  12.         a1.add(2.2);  
  13.         ArrayList<Object>  a3=mergeList(a1,a2);  
  14.         System.out.println(a3);  
  15.     }  
  16.     publicstatic ArrayList<Object> mergeList(ArrayList<Object> a1,ArrayList<Object> a2){  
  17.         int size=a1.size()+a2.size();  
  18.         int j1=0,j2=0;  
  19.         ArrayList<Object> a3=new ArrayList<Object>();  
  20.         for(int i=0;i<size;i++){  
  21.             if(i%2==0)  
  22.                 a3.add(a1.get(j1++));  
  23.             else
  24.                 a3.add(a2.get(j2++));  
  25.         }  
  26.         return a3;  
  27.     }  
  28. }