博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java集合工具2--Arrays
阅读量:4029 次
发布时间:2019-05-24

本文共 1792 字,大约阅读时间需要 5 分钟。

续中,讨论了集合中常用的工具库和工具类。事实上,集合的底层实现已然或为数组或链表,因此还有必要探寻一下Java中的Arrays 类。

Arrays

javadoc对其的解释为:

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

若没有特别注明,传入的特定的数组引用为null时,类中的所有方法皆会抛NullPointerException。
类中的实现方法有一个简要的文档描述,这些描述应该是一种注意事项,而不是一种规范,这些实现可有其他算法自由替换。(如对Object[]进行sort排序时,不一定是归并排序,但是其他算法必须是稳定的)

常用方法

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

public static 
List
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 
int binarySearch(T[] a, T key, Comparator
c) 其他同系列的省略

3.拷贝、截取数组

public static 
T[] copyOf(T[] original, int newLength)public static
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 
Stream
stream(T[] array)

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

public static String toString(int[] a)public static String toString(Object[] a)

转载地址:http://uglbi.baihongyu.com/

你可能感兴趣的文章
mysql:sql truncate (清除表数据)
查看>>
scrapy:xpath string(.)非常注意问题
查看>>
yuv to rgb 转换失败呀。天呀。谁来帮帮我呀。
查看>>
yuv420 format
查看>>
单纯的把Y通道提取出来能正确显示出灰度图来为什么我的Qt就显示不出来呢转换有问题呀?
查看>>
YUV420只绘制Y通道
查看>>
yuv420 还原为RGB图像
查看>>
LED恒流驱动芯片
查看>>
驱动TFT要SDRAM做为显示缓存
查看>>
使用file查看可执行文件的平台性,x86 or arm ?
查看>>
qt5 everywhere 编译summary
查看>>
qt5 everywhere编译完成后,找不到qmake
查看>>
arm-linux开机读取硬件时钟,设置系统时钟。
查看>>
交叉编译在x86上调试好的qt程序
查看>>
/dev/input/event0 键盘输入
查看>>
qt 创建异形窗体
查看>>
可重入函数与不可重入函数
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
输入设备节点自动生成
查看>>