欢迎访问宙启技术站
智能推送

Java函数库详解:Arrays类中常用函数的应用

发布时间:2023-06-26 22:13:40

Arrays类是Java标准库中提供的一个工具类,它封装了一些常见的操作数组的方法。这些方法包括数组的排序、查找、填充等操作,为我们在编写Java代码时提供了便利。在下面的文章中,我们将介绍Arrays类中常用函数的应用。

1. sort方法

Arrays类中最常用的方法之一就是sort方法,它用于对数组进行排序。sort方法有多个重载,包括对原始类型数组和对象数组的排序方法。

对于原始类型数组,除了boolean类型之外,其余的类型都有对应的排序方法,例如sort(int[] a)方法用于对int类型的数组进行排序。对于对象数组,需要实现Comparable接口,或者传入一个Comparator对象作为排序规则。

例如,我们有一个int类型的数组:

int[] a = {3, 2, 1, 4};

Arrays.sort(a);

调用Arrays.sort(a)方法,将会对数组a进行排序,排序后的结果为:{1, 2, 3, 4}。如果我们要对对象数组进行排序,需要定义一个实现了Comparable接口的类:

class Person implements Comparable<Person> {

    private String name;

    private int age;

    public Person(String name, int age) {

        this.name = name;

        this.age = age;

    }

    public String getName() {

        return name;

    }

    public int getAge() {

        return age;

    }

    // 按年龄从小到大排序

    @Override

    public int compareTo(Person o) {

        return Integer.compare(this.age, o.getAge());

    }

}

然后,我们可以定义一个Person类型的数组:

Person[] persons = {

        new Person("Tom", 23),

        new Person("Jack", 18),

        new Person("Lucy", 20)

};

调用Arrays.sort方法,将会对这个数组按照年龄从小到大进行排序:

Arrays.sort(persons);

2. binarySearch方法

binarySearch方法用于对已排序的数组进行二分查找,找到目标元素的索引。如果数组中不存在目标元素,方法返回负数值。

例如,我们有一个有序的int数组:

int[] a = {1, 2, 3, 4, 5};

int index = Arrays.binarySearch(a, 3);

调用Arrays.binarySearch(a, 3)方法,将会在数组a中查找元素3,如果找到了,返回索引2;如果没有找到,返回负值-3。

3. fill方法

fill方法用于将一个数组填充为指定的值,可以用于数组的初始化。

例如,我们定义一个int类型的数组,将其填充为0:

int[] a = new int[5];

Arrays.fill(a, 0);

调用Arrays.fill(a, 0)方法,将会将数组a中的所有元素都填充为0。

4. copyOf方法

copyOf方法用于复制一个数组,可以指定新数组的长度。如果新数组长度大于原数组长度,多出来的部分默认填充为0或者null。

例如,我们有一个int数组:

int[] a = {1, 2, 3, 4, 5};

int[] b = Arrays.copyOf(a, 3); // 复制前3个元素

调用Arrays.copyOf(a, 3)方法,将会复制数组a中的前3个元素,生成一个新的长度为3的数组b,其值为{1, 2, 3}。

5. asList方法

asList方法用于将一个数组转换成List类型。这个方法生成的List是一个固定大小的List,不能进行添加或删除操作。

例如,我们有一个int类型的数组:

int[] a = {1, 2, 3, 4, 5};

List<Integer> list = Arrays.asList(a);

调用Arrays.asList(a)方法,将会将数组a转换成长度为5的固定大小的List类型。

总结

以上是Arrays类中常用函数的应用,虽然这些方法比较简单,但在实际的Java开发中却是非常常用的,我们需要掌握它们的基本用法,为后续的Java编程打下基础。