您的位置:首页 > 编程语言 > Java开发

Java集合工具2--Arrays

2015-10-03 11:45 453 查看
上文中,讨论了集合中常用的工具库和工具类。事实上,集合的底层实现已然或为数组或链表,因此还有必要探寻一下Java中的
Arrays
类。

Arrays

javadoc对其的解释为:

此类包含操作数组的各种方法,如排序和查找方法。此外带有一个静态工厂方法asList, 用于将数组以List的形式呈现。

若没有特别注明,传入的特定的数组引用为null时,类中的所有方法皆会抛NullPointerException。

类中的实现方法有一个简要的文档描述,这些描述应该是一种注意事项,而不是一种规范,这些实现可有其他算法自由替换。(如对Object[]进行sort排序时,不一定是归并排序,但是其他算法必须是稳定的)

常用方法

1.获取由特定数组组成的ArrayList

public static <T> List<T> asList(T... a)


2.各种数组类型的二分查找方法

public static int binarySearch(byte[] a, byte key)

public static int binarySearch(int[] a, int key)

public static int binarySearch(Object[] a, Object key)

public static <T> int binarySearch(T[] a, T key, Comparator<? super T> c)

其他同系列的省略


3.拷贝、截取数组

public static <T> T[] copyOf(T[] original, int newLength)

public static <T> T[] copyOf(T[] original, int newLength)

public static boolean[] copyOfRange(boolean[] original, int from, int to)

其他同系列的省略


4.数组比较,平行比较、深度比较

public static boolean deepEquals(Object[] a1, Object[] a2)

public static boolean equals(int[] a, int[] a2)

public static boolean equals(Object[] a, Object[] a2)

其他同系列的省略


5.数组填充特定的值

public static void fill(boolean[] a, boolean val)

public static void fill(byte[] a, byte val)

public static void fill(byte[] a, int fromIndex, int toIndex, byte val)

public static void fill(int[] a, int val)

同系列的省略


6.获取数组hash值

public static int hashCode(boolean a[])

public static int hashCode(int a[])

同系列的省略


7.排序

public static void sort(byte[] a)

public static void sort(int[] a)

public static void sort(Object[] a)


在Java8中新增了很多并行排序和流式操作,如下

对指定的数组按数字升序顺序,该排序算法是一个并行排序合并
public static void parallelSort(int[] a)

返回指定的数组的序列流
public static IntStream stream(int[] array)

public static <T> Stream<T> stream(T[] array)


8.toString系列,返回数组的字符串形式

public static String toString(int[] a)

public static String toString(Object[] a)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: