如何將數組的元素移動到Android JAVA上的特定位置。 我們有將陣列的元素移動到指定的位置
int oldPosition, int newPosition
有的像
JSONObject[] tmp = new JSONObject[999];
陣列的JSONObjects
如何將數組的元素移動到Android JAVA上的特定位置。 我們有將陣列的元素移動到指定的位置
int oldPosition, int newPosition
有的像
JSONObject[] tmp = new JSONObject[999];
陣列的JSONObjects
如果你只想移動 tmp[newPosition]=tmp[oldPosition];
交換
JSONObject jo= tmp[oldPosition];
tmp[oldPosition]=tmp[newPosition];
tmp[newPosition]=jo;
編輯:還有其他的方法,但你可以通過這個問題,以及讓您的結果:)
練習:你能理解這個邏輯,並使用JSONObject
型和做需要更改,小心NullPointerExceptions
,處理一切我懶做他們
比方說你有int數組 - >private int array[];
array = new int[]{10,20,30,40,50,60,70,80,90,100};
電話,如果你想交換元素這種方法,
swapNumbers(array,9,1);
。
public int[] swapNumbers(int [] arr, int possition1, int possition2){
int temp = arr[possition2];
arr[possition2] = arr[possition1];
arr[possition1] = temp;
System.out.println("array -->" + Arrays.toString(array));
return arr;
}
出放:陣列[10,,30,40,50,60,70,80,90,20 ]
但不滿足你?
需要出放是這樣:陣列[10,,20,30,40,50,60,70,80,90]
則可以使用下面的方法
resetUpMyArray(array, array[9],1);
System.out.println("array Finally changed-->" + Arrays.toString(array));
享受,
public int[] resetUpMyArray(int[] inputArray, int deleteMeValue,int addMePosition) {
List resultLinkedList = new LinkedList();
for (int itemValue : inputArray)
if (deleteMeValue == itemValue) {
System.out.println("Do not add this value"+itemValue);
} else {
System.out.println("Do add this value "+itemValue +"position-"+deleteMeValue);
resultLinkedList.add(itemValue);
}
System.out.println("array -as new L.L->" + resultLinkedList);
resultLinkedList.add(addMePosition,deleteMeValue);
System.out.println("array -as new L.L all set->" + resultLinkedList);
array = new int[resultLinkedList.size()];
for (int i = 0; i < resultLinkedList.size(); i++) {
array[i] = (int) resultLinkedList.get(i); // Watch out for NullPointerExceptions!
}
return array;
}
下面是兩個簡單的算法。
開關值:
switch(array, from, to)
tmp = array[to]
array[to] = array[from]
array[from] = tmp
這將會給像
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
|--<---->--|
[10, 20, 60, 40, 50, 30, 70, 80, 90, 100]
這將簡單地存儲,這將是該指數to
在更換是在指數from
的地方的價值觀移動和移位值:
這一個將移動一個值,然後移動下一個值。
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
|------------^
[10, 20, , 40, 50, 60, 30, 70, 80, 90, 100]
<-----------
[10, 20, 40, 50, 60, 30, 70, 80, 90, 100]
對於這一點,該解決方案是相當的相同,存儲值tmp
但每個值轉移到填充間隙。此代碼將只工作,如果from < to
tmp = array[to]
i = from
while(i < to)
array[i] = array[i+1]; --Shift the value
i = i + 1
array[to] = tmp;
使用臨時變量來存儲當前值和移動的老位置值的臨時變量,然後,在新的位置值移動到老位置終於移到臨時值到新的位置。 –
歡迎,請提供您試圖向我們展示您在此問題上花費一些時間的代碼。當然,你應該首先搜索類似的問題,這是一個簡單的算法問題。 – AxelH