Java中提供了一个专门用于操作数组的工具类,即Arrays类,位于java.util包中。Arrays类包含各种操作数组的方法,比如排序和搜索,除此之外,Arrays类还包含一个静态工厂,允许将数组视为列表。Arrays类里的方法都是静态方法,我们可以通过Arrays.方法名()直接调用。
Arrays类的常用方法如下:
该方法是将数组转化为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()等方法。
在Java API中的public static void fill(Object[] a,int fromIndex,int toIndex,Object val)将指定的Object引用分配给指定Object数组指定范围中的每个元素,填充的范围从索引fromIndex(包括)一直到索引toIndex(不包括),如果fromIndex==toIndex,则填充范围为空。
参数 | 说明 |
a | 要填充的数组 |
fromIndex | 要使用指定值填充的第一个元素的索引(包括) |
toIndex | 要使用指定值填充的最后一个元素的索引(不包括) |
val | 要存储在数组的所有元素中的值 |
1)Arrays.copyOf()
该方法传回的数组是新的数组对象,改变传回数组中的元素值,不会影响原来的数组,其中第一个变量表示原来的数组对象,第二个变量表示新的数组的长度,如果新的数组的长度超过原来的数组的长度,保留数组元素的默认基本类型的值。
2)Arrays.copyOfRange()
该方法用于对一个已有的数组进行截取复制,复制出一个左闭右开区间的数组。将一个原始的数组original,从下标from开始复制,复制到上标to,生成一个新的数组返回。
注意:这里包括from,不包括to,即[from,to)。
该方法用于比较判断两个数组元素是否相等,例如:
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
该方法是Arrays类的静态方法,用于对数组进行排序,时间复杂度O(n*logn),方法返回值为void。排序后,数组中存放的是排序后的结果。
通过二分法在已经排好序的数组中查找指定的元素,并返回该元素的下标。如果该元素存在于数组中,则返回该元素在数组中的下标;如果该元素不存在于数组中,则返回-(插入点+1),这里的插入点指的是,如果该元素存在于数组中,该元素在数组中的下标。
本文固定URL:https://www.dotcpp.com/course/889
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程