①前言
关于Arrays类,up有些纠结。诚然,Arrays类中一些方法的使用频率还是比较可观的。但是吧,如果单独出一篇博文仅仅去演示Arrays类的常用方法,多少显得没有营养,有些水博文的味道,虽然up很喜欢水博文(bushi);可如果讲得细致一些,包含Arrays类的源码解读和断点调试的过程,放到基础阶段又有些突兀,因为Arrays类的一些方法,在底层源码中不但涉及了java 四种内部类中最难的匿名内部类(内部类up已讲过,放在了 java 进阶专栏,非此基础专栏),而且牵涉到数据结构与算法中的查找等内容(up计划将来发布到 java 数据结构与算法专栏)。因此,Arrays类对于"力求完美"的up来说,就属于这么一个上不上,下不下的位置,相当尴尬。思绪良久,最终计划先暂时将它作为一个补充类放到本篇API总结博文中的常用类位置,简单演示一下它的几个常用方法,明面上也算是我讲到过了。之后如果有机会,我们再对它进行仔细剖析。
②简介
Arrays类是常用类中的一个工具类,其中包含了一系列静态方法,用于管理和操作数组(比方说查找和排序)。
③常用方法介绍演示
1° static String toString(..[] a) :
该方法可以将指定类型的数组转换为String类型的表示。这里的"指定类型"既可以是八大基本数据类型,还可以是引用类型。
2°static void sort(..[] a) :
该方法可以将指定类型的数组进行升序排序。
3°static int binarySearch(..[] a, .. key) :
该方法可以在一个有序数组中查找某个元素是否存在。需要传入数组和要查找的元素。若存在,返回当前元素在数组中的位置,若不存在,确定当前元素在数组中按大小排序应该所在的位置,并返回 - (该位置索引 + 1)。
4°static ..[] copyOf(..[] original, int newLength) :
该方法可以将原数组中指定长度的内容拷贝到新数组中。若指定长度大于原数组长度,则多出来的部分以默认值填充。
Δ演示 :
up以Arrays_类为演示类,代码如下 :
package csdn.knowledge.api.arrays;
import java.util.Arrays;
import java.util.Objects;
public class Arrays_ {
public static void main(String[] args) {
//演示 : Arrays类常用方法
//1.static String toString(...[] a) :
int[] array_0 = new int[]{0, 1, 2, 3, 5};
double[] array_1 = new double[]{2.33, 11.2, 5.5555, 23.24, 211.8};
Integer[] array_2 = new Integer[]{0, 2, 33, 77, 11, 2, 5};
String strArray_0 = Arrays.toString(array_0);
String strArray_1 = Arrays.toString(array_1);
String strArray_2 = Arrays.toString(array_2);
System.out.println("array_0的String类型表示 = " + strArray_0);
System.out.println("array_1的String类型表示 = " + strArray_1);
System.out.println("array_2的String类型表示 = " + strArray_2);
System.out.println("==================================");
//2.static void sort(...[] a) :
Arrays.sort(array_0);
Arrays.sort(array_1);
Arrays.sort(array_2);
System.out.println("array_0数组升序排序后的字符串表示形式 = " + Arrays.toString(array_0));
System.out.println("array_1数组升序排序后的字符串表示形式 = " + Arrays.toString(array_1));
System.out.println("array_2数组升序排序后的字符串表示形式 = " + Arrays.toString(array_2));
System.out.println("==================================");
//3.static int binarySearch(...a, ... key) :
int[] ints = new int[]{1, 2, 5, 11, 23, 24, 77, 141, 211, 985};
System.out.println("11在ints数组中存在吗,存在请返回索引:" + Arrays.binarySearch(ints, 11));
System.out.println("77在ints数组中存在吗,存在请返回索引:" + Arrays.binarySearch(ints, 77));
System.out.println(" 1在ints数组中存在吗,存在请返回索引:" + Arrays.binarySearch(ints, 1));
System.out.println("==================================");
//4.static ...[] copyOf(...[] original, int newLength) :
String[] names1 = new String[]{"大伟哥", "王天一", "钟离", "布洛妮娅", "三鹰仁", "雪之下"};
String[] names2 = Arrays.copyOf(names1, 3); //拷贝三个元素过去
String[] names3 = Arrays.copyOf(names1, names1.length); //全部拷贝过去
System.out.println("新数组names2 = " + Arrays.toString(names2));
System.out.println("新数组names3 = " + Arrays.toString(names3));
}
}
运行结果 :