java Arrays常用方法

1. 简介

Arrays类包含用于操作数组的各种方法(例如排序和搜索)。此类还包含一个静态工厂,允许将数组视为列表。

如果指定的数组引用为null,则此类中的方法都抛出NullPointerException,除非另有说明。

2. 方法说明

List<T>  asList(T... a):返回由指定数组支持的固定大小的列表

int binarySearch(Object[] a, Object key):使用二分查找元素的索引

T[] copyOfRange(T[] original, int from, int to):复制数组,并且指定开始/结束索引

T[] copyOf(T[] original, int newLength):复制数组,并且指定复制长度

void fill(Object[] a, Object val):使用指定元素填充数组

void fill(Object[] a, int fromIndex, int toIndex, Object val):使用指定数组填充数组,并且指定填充的开始/结束索引

void sort(Object[] a):对数组排序,需要实现数组元素的Comparable接口

void sort(Object[] a, int fromIndex, int toIndex):对指定开始/结束索引的数组排序,需要实现数组元素的Comparable接口

void sort(T[] a, Comparator<? super T> c):对数组排序,需要实现数组元素的Comparator接口

void sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c):对指定开始/结束索引的数组排序,需要实现数组元素的Comparator接口

String toString(Object[] a):数组转字符串

3. 简单示例

 1 /*
 2 *二分查找仅适用于有序的数组
 3 * */
 4 
 5 import java.util.*;
 6 public class ArraysFunc {
 7     public static void main(String[] args){
 8 
 9         String[] arr1 = new String[]{"a","b","b","d","c"};
10 
11         //数组转列表
12         List<String> list1 = Arrays.asList(arr1);
13         System.out.println(list1);        // [a, b, b, d, c]
14 
15         //使用二分查找元素索引,发现索引不是1
16         int index = Arrays.binarySearch(arr1,"b");
17         System.out.println(index);       // 2
18 
19         // 复制指定开始/结束位置的数组(不包含结尾)
20         String[] arr2 = Arrays.copyOfRange(arr1, 1,3);
21         System.out.println(Arrays.asList(arr2));   // [b, b]
22 
23         //复制指定长度的数组(索引从0开始)
24         String[] arr3 = Arrays.copyOf(arr1,3);
25         System.out.println(Arrays.asList(arr3));         // [a, b, b]
26 
27         // 判断数组是否等价
28         boolean flag1 = Arrays.equals(arr1,arr2);
29         System.out.println(flag1);   // false
30 
31         // 对数组填充指定元素,可指定范围(不包含结尾)
32         Arrays.fill(arr3,"e");
33         System.out.println(Arrays.asList(arr3));          // [e, e, e]
34         Arrays.fill(arr3,0,2,"f");
35         System.out.println(Arrays.asList(arr3));         // [f, f, e]
36 
37         // 对数组排序
38         Arrays.sort(arr1);
39         System.out.println(Arrays.asList(arr1));       // [a, b, b, c, d]
40 
41         // 将数组变成字符串,保留完整符号
42         String str1 = Arrays.toString(arr1);
43         System.out.println(str1);      // [a, b, b, c, d]
44 
45     }
46 }

4. 说明

4.1 使用Arrays.binarySearch()方法时,需要注意数组要是有序的,否则将会无法得到自己想要的结果。

      这是由于该方法使用二分查找法实现。

4.2 使用Arrays.sort()方法时,对于自定义元素需要实现Comparable或者Comparator接口。

      关于两接口的实现参考如下:https://www.cnblogs.com/jfl-xx/p/10656433.html

!!!

猜你喜欢

转载自www.cnblogs.com/jfl-xx/p/10657357.html