Dotcpp  >  编程教程  >  Java数组  >  Java Arrays类

Java Arrays类

点击打开在线编译器,边学边练

Java中提供了一个专门用于操作数组的工具类,即Arrays类,位于java.util包中。Arrays类包含各种操作数组的方法,比如排序和搜索,除此之外,Arrays类还包含一个静态工厂,允许将数组视为列表。Arrays类里的方法都是静态方法,我们可以通过Arrays.方法名()直接调用。


Arrays类的常用方法如下:

(1)Arrays.asList()

该方法是将数组转化为List集合的方法。

List<String> list = Arrays.asList("a","b","c");

注意:

1)该方法适用于对象型数据的数组(String、Integer、…)。

2)该方法不建议使用于基本数据类型的数组(byte、short、int、long、float、double、boolean)。

3)该方法将数组与List列表链接起来,当更新其中一个的时候,另一个自动更新。

4)不支持add()、remove()、clear()等方法。

(2)Arrays.fill()

在Java API中的public static void fill(Object[] a,int fromIndex,int toIndex,Object val)将指定的Object引用分配给指定Object数组指定范围中的每个元素,填充的范围从索引fromIndex(包括)一直到索引toIndex(不包括),如果fromIndex==toIndex,则填充范围为空。

参数说明
a要填充的数组
fromIndex要使用指定值填充的第一个元素的索引(包括)
toIndex要使用指定值填充的最后一个元素的索引(不包括)
val要存储在数组的所有元素中的值

(3)Arrays.copyOf()和Arrays.copyOfRange()

1)Arrays.copyOf()

该方法传回的数组是新的数组对象,改变传回数组中的元素值,不会影响原来的数组,其中第一个变量表示原来的数组对象,第二个变量表示新的数组的长度,如果新的数组的长度超过原来的数组的长度,保留数组元素的默认基本类型的值。

2)Arrays.copyOfRange()

该方法用于对一个已有的数组进行截取复制,复制出一个左闭右开区间的数组。将一个原始的数组original,从下标from开始复制,复制到上标to,生成一个新的数组返回。

注意:这里包括from,不包括to,即[from,to)。

(4)Arrays.equals()

该方法用于比较判断两个数组元素是否相等,例如:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        int[] arr1 = {9,5,1,33};
        int[] arr2 = {9,5,1,33};
        System.out.println("arr1==arr2: "+(arr1==arr2)); //比较
        System.out.println("Arrays.equals(arr1,arr2): "+Arrays.equals(arr1,arr2));
    }
}

运行结果如下:

arr1==arr2: false
Arrays.equals(arr1,arr2): true

(5)Arrays.sort()

该方法是Arrays类的静态方法,用于对数组进行排序,时间复杂度O(n*logn),方法返回值为void。排序后,数组中存放的是排序后的结果。

(6)Arrays.binarySearch()

通过二分法在已经排好序的数组中查找指定的元素,并返回该元素的下标。如果该元素存在于数组中,则返回该元素在数组中的下标;如果该元素不存在于数组中,则返回-(插入点+1),这里的插入点指的是,如果该元素存在于数组中,该元素在数组中的下标。



本文固定URL:https://www.dotcpp.com/course/889

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Java教程
第一章 Java入门
第二章 Java运算符和表达式
第三章 Java流程控制
第四章 Java类和对象
第五章 Java子类与继承
第六章 Java接口与实现
第七章 Java内部类与异常类
第八章 Java常用实用类
第九章 Java输入输出流
第十章 Java数组
Dotcpp在线编译      (登录可减少运行等待时间)