zoukankan      html  css  js  c++  java
  • JAVA中数组Arrays类的常见用法

    import java.util.Arrays;

    int[] array1={7,8,3,2,12,6,5,4};  

    1.  //克隆clone 
    int[] array2=array1.clone(); 
    System.out.println("arry2克隆的结果是:"+Arrays.toString(array2));

    2.  //复制copyof 

    ①方法一:
    int [] array3=Arrays.copyOf(array1, 4); // "4"表示复制的长度
    System.out.println("arry3复制copyof的结果:"+Arrays.toString(array3));    //输出:[7,8,2,12]

    ②方法二:
    System.arraycopy(src, srcPos, dest, destPos, length);
    src -- 这是源数组.
    srcPos -- 这是源数组中的起始位置。
    dest -- 这是目标数组。
    destPos -- 这是目标数据中的起始位置。
    length -- 这是一个要复制的数组元素的数目。

    异常:
        IndexOutOfBoundsException -- 如果复制会导致访问数组边界之外的数据
        ArrayStoreException -- 如果src数组中的元素不能被存储到dest数组中,因为类型不匹配
        NullPointerException -- 如果src或dest为null

    例,
    int arr1[] = { 0, 1, 2, 3, 4, 5 };
    int arr2[] = { 11, 10, 20, 30, 40, 50 };
    //从数组arr1中的第0个位置开始复制3个数,复制到arr2中,从b中的1位置开始存放
    System.arraycopy(arr1, 0, arr2, 1, 3);   
    System.out.println(Arrays.toString(arr2));  //输出:[11, 0, 1, 2, 40, 50]


    3.判断两个数组是否相等:
            String[] a={"a","b","c"};
            String[] b={"a","b","c"};
            System.out.println(a.equals(b));//false
            System.out.println(a == b);//false
            System.out.println(Arrays.equals(a, b));//true

    注意:

    基本数据类型的数组的equals方法没有重载Object的equals方法,所以跟“==”效果一样 ,所以你这里 a.equals(b) 效果和 a == b是一样的,==比较的是内存地址,结果是false。
    如果想要比较内容相同,可以使用Arrays.equals(a,b)。
     

    4.  //对数组的第2个到第7个进行排序进行排序
    Arrays.sort(array1,2,8);
    System.out.print("对数组的第2个到第6个元素进行排序进行排序:Arrays.sort(array1,2,7):");
    System.out.println(Arrays.toString(array1));

    5.  //将arry1整体排序 sort  
    Arrays.sort(array1);
    //toString 转换为字符串
    System.out.println("排序后的arry1的值:"+Arrays.toString(array1));  

    6. //排序后arry1与arry2是否还相等 equals  
    System.out.println("排序后arry1与arry2是否还相等:"+Arrays.equals(array1, array2));  

    7. //填充 fill  
         Array.fill(arrayname,value);
         Array.fill(arrayname ,starting index ,ending index ,value)
    例,
    Arrays.fill(array3, 6);  //将数字6填充到数组array3,输出:{6,6,6,6,6,6,6,6}
    Arrays.fill(array3, 2, 4, 9);  //将数组9从索引值2填充到索引值4
    System.out.println("填充之后arry2的值:"+Arrays.toString(array3));//输出:{7,8,6,6,12,6,5,4}
     
    8. //查询binarySearch
    System.out.println("数字6在arry1中的位置:"+Arrays.binarySearch(array1, 6));

    9. //将数组array1转换为List
            String[] name=new String[]{"a","b","c"};
            //转换为集合
            List<String> list=Arrays.asList(name);
            System.out.println(list);


    10.数组的删除:
    ArrayList<Integer> a = new ArrayList<Integer>();
    for(int i=0;i<10;i++){
        a.add(i);
    }
        a.remove(1);
            
    System.out.println(a);   //输出:[0, 2, 3, 4, 5, 6, 7, 8, 9]


    11.数组的查找:
    ①第一种方法:(这种方法需要用动态数组ArrayList)
    ArrayList a = new ArrayList();
    for(int i=0;i<10;i++){
        a.add(i);
    }
    a.remove(0);
    System.out.println(a);   //输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
    System.out.println(a.contains(1)); //返回boolea值      输出:true


    ②第二种方法:
    int[] aa={1,2,3};
    System.out.println("数字2在数组aa中的位置:"+Arrays.binarySearch(aa, 2));  //返回索引值  输出:1 



    注意:Java中Arrays的asList()方法 可以将数组转为List 但是,这个数组类型必须是引用类型,如果是8种基本数据类型就不可以!

  • 相关阅读:
    爬取网易云音乐歌手和id
    【兼容调试】cffi library '_openssl' has no function, constant or global variable named 'Cryptography_HAS
    python如何去掉字符串‘xa0’
    python 中json和字符串互相转换
    vip视频播放
    一行Python代码画心型
    Java语言编写MD5加密方法,Jmeter如何给字符串MD5加密
    转载:oracle RAC集群启动和关闭
    转载:oracle 11g ADG实施手册(亲测,已成功部署多次)
    如何上传本地文件到github又如何删除自己的github仓库
  • 原文地址:https://www.cnblogs.com/Downtime/p/7757743.html
Copyright © 2011-2022 走看看