2014-06-11 115 views
1

我正在嘗試編寫一個代碼,其中包含一個位圖數組,但是我想在另一個數組中保存位圖,這些位置將移動到位圖上。爲了做到這一點,我做如下:Android支持位圖保持原始位置的ArrayList

int[] ar = { 1, 2, 3, 7, 12, 4, 5, 13, 8, 9, 11, 10, 6 , 14, 15}; 
public static ArrayList<Bitmap> shuffleArray(int[] ar, ArrayList<Bitmap> arraybmorig) 
{ 
    Bitmap[] arraybmfinal = new Bitmap[arraybmorig.size()]; 

    for (int i=0; i<ar.length; i++) 
    { 

    arraybmfinal[ar[i]] = arraybmorig.get(i); 
    } 

    return new ArrayList(Arrays.asList(arraybmfinal)); 
} 

但我的代碼效率不高,我想我的隨機固定陣列AR [] ...什麼是做這個功能的最佳方式?

Thx提前!

回答

0

據我所知,你想洗牌你的ar陣列,並把位圖放在ar的位置。 您至少有兩種方式來洗牌陣列:

private void ShuffleArray(int[] array) 
{ 
    int index, temp; 
    Random random = new Random(); 
    for (int i = array.length - 1; i > 0; i--){ 
     index = random.nextInt(i + 1); 
     temp = array[index]; 
     array[index] = array[i]; 
     array[i] = temp; 
    } 
} 

和第二種方式 - 對於ArrayList的使用默認的方法:

ArrayList<Integer> x = new ArrayList<Integer>(); 
for(int i=1;i<=add.length();i++){ 
    x.add(i); 
} 
Collections.shuffle(x); 
+0

我真的想洗牌的是ArrayList中 arraybmorig,我ARR []是隻有一種方法來標記陣列的項目應該去的位置... – Billyjoker

+0

對不起,但你的第一個代碼只是洗滌int []的數組,而第二個代碼與Collections不知道項目在哪裏.. – Billyjoker

+1

是的。在int []數組的混洗之後,把你的位圖放在位置ar [0],ar [1]等等 –