Java中的數組是否有任何預定義的方法,可以直接交換兩個元素?我們可以使用或不使用臨時變量的函數,這很好。但我想知道是否有任何方法像Arrays.sort()進行交換?交換數組中的元素(Java)
1
A
回答
2
是否有任何Java中的數組預定義的方法與哪個可以 直接交換兩個元素?
默認Java API沒有任何交換數組元素的函數。但是,您可以使用Collections.swap(list, index1, index2);
交換列表元素,並且可以將數組轉換爲列表並執行交換,然後將列表轉換爲數組。
如果你不想執行這樣的操作,你可以看看一些第三方庫可以提供這樣的功能。
您也可以創建自己的通用功能。
例如,
public class Test {
@SuppressWarnings("unchecked")
public static <T> void swap(T[] arr, int index1, int index2) {
// Need to add null check and index checks
List<T> list = Arrays.asList(arr);
Collections.swap(list, index1, index2);
arr = (T[]) list.toArray();
}
public static void main(String[] args) {
Integer[] arr = { 1, 2, 3, 4, 5 };
swap(arr, 1, 2);
System.out.println(Arrays.asList(arr));
}
}
OUTPUT
[1, 3, 2, 4, 5]
NOTES:
- 以上功能不會爲原始陣列工作
- SuppressWarnings是爲了避免取消選中投射警告而添加的
2
您需要使用swap
方法的List
接口。的List.swap
的定義是這樣的......
public static <E> void swap(List<E> a, int i, int j) {
E tmp = a.get(i);
a.set(i, a.get(j));
a.set(j, tmp);
}
的doc說This is a polymorphic algorithm: It swaps two elements in any List, regardless of its implementation type.
如果你不熟悉java Collections
,那麼你首先需要讓自己熟悉它。
相關問題
- 1. 在數組之間交換元素 - java
- 2. Lisp數組元素交換
- 3. 交換數組元素值
- 4. 交換對象數組中的元素
- 5. 交換數組中的相應元素
- 6. 數組中的元素交換
- 7. 需要交換java中的數組中的兩個元素
- 8. 在java中交換數組中元素的位置?
- 9. 交換ArrayList的元素-java
- 10. 如何交換元組中的元素?
- 11. array2D中的交換元素java
- 12. 交換兩個數組元素
- 13. 與密鑰交換數組元素
- 14. 不能交換數組元素C++
- 15. 異常數組元素交換
- 16. C - 結構數組元素交換
- 17. 鎖定自由數組元素交換
- 18. 數組中的元素-Java
- 19. 交換結構元素的數組與其他元素
- 20. 交換python類中定義的數組中的元素
- 21. 交換數組中2個元素的函數不起作用
- 22. 交換數組元素的效率vs數組索引
- 23. 交換元素
- 24. 在MIPS彙編中交換數組中的兩個元素
- 25. 在C++中隨機交換數組中的兩個元素
- 26. 交替數組元素
- 27. 如何交換swift數組中的元素?
- 28. 如何交換c中struct數組的元素?
- 29. 如何交換多維數組中的元素在php
- 30. 我們如何交換數組中的兩個元素?
如果數組包含2個以上的元素,應該交換的數組是什麼? – haifzhan
Collections.swap(List > list,int i,int j); –
@Bhatt將數組列入List? –