Array,Arrays类

数组类Array

概述

  • Array为数组类,它是Java中的一个最基本的存储结构,

  • 其容量是固定的,并且无法动态改变

  • 只能存放同一数据类型的数据。

  • Array类提供静态方法来动态创建和访问Java数组。

  • 没有构造方法

  • public final class Array
    extends Object

常用方法

static Object get(Object array, int index) 
//返回指定数组对象中的索引对应的值。  
static boolean getBoolean(Object array, int index) 
//返回指定数组对象中的索引组件的值,如 boolean 。   还有getInt,getChar等各种类型的方法  
static void set(Object array, int index, Object value) 
//将指定数组对象的索引对应的值设置为指定的新值。 
static void setBoolean(Object array, int index, boolean z) 
//将指定数组对象的索引组件的值设置为指定的 boolean值。 还有setInt,setChar等各种类型的方法 
static Object newInstance(类<?> componentType, int... dimensions) 
//创建具有指定组件类型和尺寸的新数组。  
static Object newInstance(类<?> componentType, int length) 
//创建具有指定组件类型和长度的新数组。 

Arrays

概述

  • 静态工具类,没有构造方法

  • 该类包含用于操作数组的各种方法(搜索、排序、复制等静态方法)。

  • 如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException

  • public class Arrays
    extends Object

常用成员方法

排序功能

static void sort(Object[] a)  
//按照数字顺序进行排序
static void parallelSort(int[] a) 
//Java 8 新增的并行排序算法,功能和用法和上述相同,数据显示,在对大量数据的排序时,效率要高于经过调优的快速排序算法 sort。

查询功能

static int binarySearch(int[] a, int key) 
//使用二分检索法搜索指定的整形数组中是否有指定的值 key,如果存在,则返回该值第一次出现的地方的下标(以 0 为开始),如果不存在,则返回一个负整数    前提是该数组必须按照数字从小到大顺序进行排序

复制功能

static int[] copyOf(int[] original, int newLength) 
/*复制指定的数组,从头截取原数组或使用 0 填充尾部,使新的数组长度为 newLength。其他类型的数组用法相同。(byte, double, float, long, short 用 0 填充,boolean 用 false 填充,char 用 null 字符填充,T 用 null 填充)*/
​
static int[] copyOfRange(int[] original, int fromIndex, int toIndex) 
//复制指定范围的数组,复制的范围只包括起点不包括终点。参数 to 超过原数组最大下标时用 0 填充,其他类型的数组用对应的值填充

替换功能

static void fill(int[] a, int val) 
//将数组 a 中所有元素替换为 val。
static void fill(int[] a, int fromIndex, int toIndex, int val) 
//将数组 a 中指定的区间内所有元素替换为 val,替换区间包括起点而不包括终点

转换功能

static <T> List<T> asList(T... a) 
//返回由指定数组支持的固定大小的列表。 
static String toString(Object[] a)  
//返回指定数组的内容的字符串表示形式。

判断功能

static boolean equals(Object[] a,Object[] b)
//比较两个array是否相等。拥有相同元素个数,且所有对应元素两两相等。

查询功能的演示    

//数组乱序
        int [] arr ={6,9,8,5,7};
        //数组从小到大排序
        int [] arr1 = {1,2,5,6,7};
        //数组从大到小排序
        int [] arr2 = {7,6,5,4,3,2};
        System.out.println(Arrays.binarySearch(arr,7));  // -2
        System.out.println(Arrays.binarySearch(arr1,6));  //3
        System.out.println(Arrays.binarySearch(arr1,3));  // -3
/*
由此看出要使用binarySearch方法,必须保证数组按照数字正序进行排序,因为二分法检索时,会先判断key值与数组中间的那个值进行比较,如果key值大,会从中间值的左侧继续搜索,直到找到结果或不能再二分。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值