原文地址:奇舞移動技術java
前面把List
, Set
, Map
的結構梳理了一下,在java的容器體系下,還有兩個很是重要的工具類Collections
,Arrays
,本文主要梳理下Arrays
類提供的方法。數組
Arrays
提供兩種排序:sort
和parallelSort
。首先看下sort
相關的函數: 微信
Arrays
提供的各類
sort
函數以及它的重載形式。
sort
能夠排序的數組類型包括
int
,
long
,
short
,
char
,
byte
,
float
,
double
一共7種基本數據類型,在8基本類型中,除了
boolean
不能排序,都包含了。
sort
在對7中基本類型進行排序中,還可能會有
int
類型的第二個和第三個參數,分別表示排序開始的下標(包含)和結束的下標(不包含)。
sort
也能夠對
Object
類型的數據進行排序,也能夠對任意其餘類型的數組進行排序,而且能夠自定義排序時的
Comparator
。
MIN_ARRAY_SORT_GRAN
時,
parallelSort
會把數組拆分爲多個數組,而後對多個數組進行排序,最後將多個數組進行歸併,最終獲得排序結果。和
sort
方法同樣,
parallelSort
除
boolean
之外的全部基本數據類型,而且支持任意其餘類型,也支持自定義
Comparator
。
int [] arr = new int [] {1,2,3,4,5,6};
Arrays.parallelPrefix(arr, new IntBinaryOperator() {
@Override
public int applyAsInt(int left, int right) {
// TODO Auto-generated method stub
System.out.println(left + "-" + right);
return left + right;
}
});
System.out.println(Arrays.toString(arr));
1-2
3-3
6-4
10-5
15-6
[1, 3, 6, 10, 15, 21]
複製代碼
能夠看到parallelPrefix
提供了IntBinarryOperator
接口接口的applyAsInt
提供了left
, right
參數,根據left
和right
參數對數組進行修改,修改完成後將結果寫入原數組。二元操做能夠對long
, int
, double
類型的數組進行操做,也能夠對任意其餘類型的數組進行操做,並且能夠提供數組操做的下標範圍。app
Arrays
能夠對除
boolean
的基本類型數據進行二分查找,能夠對任意類型的數組進行二分查找,且能夠指定二分查找的下標範圍。對於非基本類型的數組,能夠自定義
Comparator
fill
接口將數組指定的下標位置的元素設置爲指定的值。
copyOf
將源數組從下標0開始,拷貝指定數量的元素並返回新的數組;
copyRangeOf
將元素從指定下標範圍的元素中拷貝指定數量個元素並返回信的數組。
stream
操做
Arrays
主要提供了排序,二元操做,二分查找,數據填充,拷貝,分割迭代,流式處理操做。 文章只是介紹了功能,並無詳細說明,後續會寫兩篇文章,分別分析分割迭代和流式處理。ide