使用arrays類:其中的sort()使用的是「經過調優的快速排序法」
string[
] data =
;system.out.
println
(arrays.
tostring
(data));
// [1, 4, 3, 2]
arrays.
sort
(data)
;system.out.
println
(arrays.
tostring
(data));
// [1, 2, 3, 4]
arrays.sort(t array, comparator<? super t> comparator)
使用自定義比較器,對陣列元素進行排序(序列排序)
string[
] data =
;system.out.
println
(arrays.
tostring
(data));
// [1, 4, 3, 2]
// 實現降序排序,返回-1放左邊,1放右邊,0保持不變
arrays.
sort
(data,
(str1, str2)
->
else})
;system.out.
println
(arrays.
tostring
(data));
// [4, 3, 2, 1]
public
void
testreverseself()
throws exception
; system.out.
println
("\t"
+ arrays.
tostring
(strings));
for(
int start =
0, end = strings.length -
1; start < end; start++
, end--
) system.out.
println
("\t"
+ arrays.
tostring
(strings));
}
public
void
testarraylist()
throws exception
; system.out.
println
("\t"
+ arrays.
tostring
(strings));
list
list =
newarraylist
<
>
(strings.length)
;for
(int i = strings.length -
1; i >=
0; i--
) strings = list.
toarray
(strings)
; system.out.
println
("\t"
+ arrays.
tostring
(strings));
}
public
void
testcollectionsreverse()
throws exception
; system.out.
println
("\t"
+ arrays.
tostring
(strings));
// 這種方式僅針對引用型別,對於基本型別如:
// char cs = ;
// 應該定義或轉換成對應的引用型別:
// character cs = ;
collections.
reverse
(arrays.
aslist
(strings));
system.out.
println
("\t"
+ arrays.
tostring
(strings));
}
@test
public
void
testtimeduration()
throws exception
private
static string[
] strings =
newstring
[1000000];
}/**
* 記錄操作執行總時間.
* * @param the generic type
* @param clazz the clazz
* @param methodname the method name
*/public
void
recordtime
(class
clazz, string methodname)
catch
(exception e)}}
long end = system.
currenttimemillis()
; system.out.
println
("end: "
+ end)
; system.out.
println
("duration: "
+(end - start)
+" ms");
}
使用collections和arrays工具類: 12 ms
使用arraylist: 7 ms
直接陣列元素對換: 4 ms
當資料量越來越大時,使用arraylist的方式會變得很慢.
直接使用陣列元素對換,總是最快完成.
總結:使用collections和arrays工具類反轉陣列元素更簡單,但是在原陣列上操作時速度更快,並且占用最少的記憶體.
public
static
void
main
(string args)
; random random =
newrandom()
;for
(int i=
0;i)for
(int i:arr
)}
JAVA陣列的排序實現
使用arrays類 其中的sort 使用的是 經過調優的快速排序法 但不能用sort 進行降序排序 public static void main string args arrays.sort a for int i 0 i system.out.print a i 5 1 5 8 輸出結果,注意...
Java實現陣列全排序(遞迴)
import org.junit.test 全排序思路 假設有n個數需要進行全排列,我們可以把每個數都放到第乙個位置,然後剩下的n 1個數進行全排列。即有n n 1 種可能性,與n個數進行全排列的n 次可能性一致 利用遞迴的方式,依此類推當剩下的數個數為1時,為一次排列,輸出該排列。所以遞迴函式可以...
氣泡排序之java陣列實現
氣泡排序的演算法思想 比較相鄰兩個元素的關鍵字值,如果反序,則交換。若按照公升序排序,每一趟將掃瞄資料序列的最大值到最後位置。即最多掃瞄n 1次,每次確定乙個值。下面是乙個陣列的氣泡排序實現 氣泡排序是穩定的 從小到大氣泡排序 氣泡排序時間效率在o n 和o n n 之間 public static...