• java.util.Arrays


    package com.etc.Arrays;
    
    import java.util.Arrays;
    
    public class TestArraysClass {
    
    	public static void main(String[] args) {
    		int[] arr=new int[]{5,1,3,2,6,9,10};
    		int key=6;
    		
    		//1、Arrays.toString:返回指定数组内容的字符串表示形式。
    		System.out.println("排序前:"+Arrays.toString(arr));//[5, 1, 3, 2, 6, 9, 10] 
    		
    		//2、Arrays.sort:对指定的 int 型数组按数字升序进行排序。
    		Arrays.sort(arr);
    		System.out.println("
    排序后:"+Arrays.toString(arr));//[1, 2, 3, 5, 6, 9, 10]
    		
    		//3、 Arrays.binarySearch:使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
    		int bs = Arrays.binarySearch(arr, key);
    		System.out.println("
    使用二分搜索法查询数据元素为["+key+"]的数组索引下标是:"+bs);//使用二分搜索法查询数据元素为[6]的数组索引下标是:4 
    		
    		//使用二分搜索法来搜索指定的 int 型数组的范围,以获得指定的值。
    		int bs2 = Arrays.binarySearch(arr,0,arr.length-4,key);
    		System.out.println("
    使用二分搜索法搜索指定的 int 型数组的范围:");
    		System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+bs2); 
    		System.out.println("查询数据元素为20的数组索引下标是"+ Arrays.binarySearch(arr,0,arr.length-4,20)); 
    		
    		//不再搜索范围内的情况---如果它包含在数组的指定范围内,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点       就是指定范围长度的负数
    		System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-3,key));//-4-1==-5 
    		System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-4,key));//-3-1=-4 
    		System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-5,key));//-2-1=-3 
    		System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-6,key));//-1-1=-2 
    		System.out.println("查询数据元素为["+key+"]的数组索引下标是:"+Arrays.binarySearch(arr,0,arr.length-7,key));//-0-1=-1 
    		
    		//4、Arrays.copyOf:复制一个数组
    		int[] arr2={5,1,3,2,6,9,10};
    		arr2=Arrays.copyOf(arr,5);
    		System.out.println("
    arr2:"+Arrays.toString(arr2));//arr2:[1, 2, 3, 5, 6]  
    		
    		arr2=Arrays.copyOf(arr,10);
    		System.out.println("arr2:"+Arrays.toString(arr2));//arr2:[1, 2, 3, 5, 6, 9, 10, 0, 0, 0]  
    		
    		//复制指定范围内的数组
    		arr2=Arrays.copyOfRange(arr,1,arr.length);
    		System.out.println("arr2:"+Arrays.toString(arr2));//arr2:[2, 3, 5, 6, 9, 10]  
    		
    		//5、Arrays.equals:比较两个数组是否相等
    		boolean b=Arrays.equals(arr,arr2); 
    		System.out.println("
    Arrays.equals:"+b);//Arrays.equals:false
    		
    		//6、Arrays.copyOfRange:
    		arr2=Arrays.copyOfRange(arr,0,arr.length);
    		
    		System.out.println("
    "+arr.hashCode()+"---"+arr2.hashCode());//2110121908---32374789
    		System.out.println(arr.length+"---arr---"+Arrays.toString(arr));//7---arr---[1, 2, 3, 5, 6, 9, 10]
    		System.out.println(arr2.length+"---arr2---"+Arrays.toString(arr2));//7---arr2---[1, 2, 3, 5, 6, 9, 10]
    		System.out.println("Arrays.equals:"+Arrays.equals(arr,arr2));//Arrays.equals:true
    		
    		arr2=arr;
    		System.out.println("equals:"+arr.equals(arr2));//equals:true
    		System.out.println(arr.hashCode()+"---"+arr2.hashCode());//366712642---366712642 
    		
    		//7、将指定的 int 值分配给指定 int 型数组的每个元素。
    		Arrays.fill(arr2,11);
    		System.out.println("
    Arrays.fill(arr2,11): "+Arrays.toString(arr2));//Arrays.fill(arr2,11): [11, 11, 11, 11, 11, 11, 11]
    		//将指定的 float 值分配给指定 float 型数组指定范围中的每个元素。 
    		Arrays.fill(arr2,2,6,20);
    		System.out.println("Arrays.fill(arr2,2,6,20): "+Arrays.toString(arr2));//Arrays.fill(arr2,2,6,20): [11, 11, 20, 20, 20, 20, 11]
    	}
    
    }
    

      

  • 相关阅读:
    linux的常用命令
    linux系统环境与文件权限
    MySQL常用数据类型
    【bzoj4641】基因改造 特殊匹配条件的KMP
    【bzoj4550】小奇的博弈 博弈论+dp
    【bzoj3991】[SDOI2015]寻宝游戏 树链的并+STL-set
    【bzoj1304】[CQOI2009]叶子的染色 树形dp
    【bzoj4715】囚人的旋律 dp
    【bzoj4008】[HNOI2015]亚瑟王 概率dp
    【bzoj4444】[Scoi2015]国旗计划 倍增
  • 原文地址:https://www.cnblogs.com/1020182600HENG/p/6810195.html
Copyright © 2020-2023  润新知