Arrays类操作数组常用方法

Arrays类操作数组常用方法介绍

import java.util.Arrays;
//Arrays类操作数组常用方法举例
public class AraysTest {

    public static void main(String[] args) {
        /*
          binarySearch(type[] a,type key) 
          使用二分法查询key元素在数组中的索引
          如不包含key就返回负数。使用时数组元素必须有序。
         */
        int[] a = {3, 7, 8, 9, 15, 48};
        //元素9在数组a中的索引为3,则输出结果为3
        int index = Arrays.binarySearch(a, 9);
        System.out.println(index);
        //元素99不在数组a中,则输出结果为负数
        index = Arrays.binarySearch(a, 99);
        System.out.println(index);
        /*
          binarySearch(type[] a,int fromIndex,int toIndex,type key) 
          使用二分法查询key元素在数组中的索引,但只查询数组a中fromIndex到toIndex索引的元素
          如不包含key就返回负数。使用时数组元素必须有序。
         */
        //48在数组a中,但48的索引为5,在0-4的索引范围内查询不到48,返回值为复数
        index = Arrays.binarySearch(a, 0, 4, 48);
        System.out.println(index);
        //8在a数组中并且在0-4范围内可以找到8的索引为2
        index = Arrays.binarySearch(a, 0, 4, 8);
        System.out.println(index);
        /*
        copyOf(type[] b,  int length)
        把数组b复制成一个新数组,length是新数组的长度
        如果length小于数组b的长度,新数组救是原数组前面length个元素
        如果length大于数组b的长度,新数组前面所有元素就是原数组所有元素,后面在补充
        0(数值;类型),false(布尔类型),null(引用类型)
         */
        int[] b = {35, 47, 38, 69, 15, 48, 55, 60};
        //复制b数组,大小相同;输出接结果:35, 47, 38, 69, 15, 48, 55, 60
        int[] copy = Arrays.copyOf(b, 8);
        for (int i = 0; i < copy.length; i++) {
            System.out.print(copy[i] + " ");
        }
        System.out.println("");
        //只复制前5个元素,输出结果为:35 47 38 69 15
        int[] copy2 = Arrays.copyOf(b, 5);
        for (int i = 0; i < copy2.length; i++) {
            System.out.print(copy2[i] + " ");
        }
        System.out.println("");
        //新数组比原数组大,前8个元素为原数组元素,后2个元素为0,输出结果:35 47 38 69 15 48 55 60 0 0
        int[] copy3 = Arrays.copyOf(b, 10);
        for (int i = 0; i < copy3.length; i++) {
            System.out.print(copy3[i] + " ");
        }
        System.out.println("");
        /*
        fill(type[] a,type val)将数组a所有元素赋值为val
         */
        int[] c = new int[5];
        //将数组c的五个元素全部赋值为666
        Arrays.fill(c, 666);
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i] + " ");
        }
        System.out.println(" ");
        /*
        fill(type[] a,int fromIndex,int toIndex,type val)将数组c从fronIndex到toIndex索引元素赋值为val
         */
        //将数组c中索引1-3赋值为999
        Arrays.fill(c, 1, 3, 999);
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i] + " ");
        }
        System.out.println("");
        /*
        toString(type[] c)将数组转换成字符串
         */
        System.out.println(Arrays.toString(c));

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值