util.Arrays类

java.util.Arrays类

JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。Arrays类包含了:排序,查找,填​​充,打印内容等常见的操作
打印数组

        System.out.println(a); // 打印数组引用的值;
        System.out.println(Arrays.toString(a)); // 打印数组元素的值;
    }

测试素组存储表格数据

	public static void main(String[] args) {
		Object[] a1= {"测试",2020-9-19};
		Object[] a2= {"测试1",2020-9-18};
		Object[] a3= {"测试2",2020-9-17};
		Object[][] tab=new Object[3][];
		tab[0]=a1;
		tab[1]=a2;
		tab[2]=a3;
		for(Object[] temp:tab) {
			System.out.println(Arrays.toString(temp));	
		}
	}

数组的排序

public static void main(String[] args) {
		int[] a= {10,20,30};
		System.out.println(a);
		/*Arrays.toString()方法表示返回指定数组的内容的字符串表示形式*/
		System.out.println(Arrays.toString(a));
		
		int[] b= {100,80,129,301,58,90};
		/*Arrays.sort方法表示按照数字顺序排列指定的数组*/
		Arrays.sort(b);
		System.out.println(Arrays.toString(b));
		/*Arrays.binarySearch方法表示使用二叉搜索算法搜索指定的int数组的指定值*/
		System.out.println("元素索引:"+Arrays.binarySearch(b, 129));
		int[] c= {12,23,4,5,67,78,9,};
		Arrays.fill(c, 1, 4, 100);
		/*Arrays.fill将指定的int值分配给指定的int数组的指定范围的每个元素*/
		System.out.println(Arrays.toString(c));
	}

2维数组

public static void main(String[] args) {
		/*定义一个二维数组*/
		int[][]	a=new int[3][];	
		/*初始化数组*/
		a[0]=new int[] {20,30};
		a[1]=new int[] {19,30,40};
		a[2]=new int[] {10,50};
		/*打印a1数组的下标为2的数组*/
		System.out.println(a[1][2]);
		//编译:40
		
		/*静态初始化二维数组*/
		int[][] b= {
				{10,20,30},
				{40,50,60},
				{70,80,90}
		};
		System.out.println(b[1][0]);
		//编译:40
	}

二分法查找

public static void main(String[] args) {
        int[] arr = { 30,20,50,10,80,9,7,12,100,40,8};
        int searchWord = 20; // 所要查找的数
        Arrays.sort(arr); //二分法查找之前,一定要对数组元素排序
        System.out.println(Arrays.toString(arr));
        System.out.println(searchWord+"元素的索引:"+binarySearch(arr,searchWord));
    }
    public static int binarySearch(int[] array, int value){
        int low = 0;
        int high = array.length - 1;
        while(low <= high){
            int middle = (low + high) / 2;
            if(value == array[middle]){
                return middle;         //返回查询到的索引位置
            }
            if(value > array[middle]){
                low = middle + 1;
            }
            if(value < array[middle]){
                high = middle - 1;
            }
        }
        return -1;     //上面循环完毕,说明未找到,返回-1
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值