Java Arrays工具类的使用
Arrays 是JDK提供的操作数组的工具类,Arrays类提供了动态创建和访问 Java 数组的方法。
Arrays类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。下面列出常见的几种用法:
1.数组转换字符串
int[] a = {20, 3, 32, 1, 72, 26, 35};
String str = Arrays.toString(a);
2.对数组进行升序排列
int[] a = {20, 3, 32, 1, 72, 26, 35};
Arrays.sort(a);
3.所有元素赋特定值
int[] a = {20, 3, 32, 1, 72, 26, 35};
Arrays.fill(a, 10);
4.判断数组是否相等
int[] a = {20, 3, 32, 1, 72, 26, 35};
int[] b = {3, 5, 7, 8, 54, 23, 9};
boolean boo = Arrays.equals(a, b);
5.对数组复制
int[] b = {3, 5, 7, 8, 54, 23, 9};
int[] d = Arrays.copyOf(b, b.length);
6.查询数组下标
int[] b = {3, 5, 7, 8, 9, 23, 54};
int i = Arrays.binarySearch(b, 5);
7.数组转换成集合
int[] a = {20, 3, 32, 1, 72, 26, 35};
// 这里先转成字符串,再通过字符串转成集合
String str = Arrays.toString(a);
List<String> list = Arrays.asList(str);
附
Arrays.asList()
方法在后续的版本中不建议使用,建议改成Collections.singletonList()
方法;- 数组转集合还可以采用
Collections.addAll()
和java8以后支持的stream流操作进行转换; - 需要注意的是,这里为什么将数组a先转换成字符串再进行转换?因为数组a是int类型的,属于基本类型,不是对象类型,如果直接将a作为参数传入进行转换,则转换的类型不是我们预期的那样,具体的大家可以自行测试,底层的实现主要和泛型有关,而泛型必须得是引用类型才可以,基本类型不是引用类型。