zoukankan      html  css  js  c++  java
  • Java常用类(四)之数组工具类Arrays

    前言

      数组的工具类java.util.Arrays
      由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。

    一、Arrays类概述

    1.1、Arrays类的引入

      该是java.util包中的类,在我们的代码中想使用这个类的话,就必须使用import进行导入。

      在当前类A中,只有java.lang包下的类,以及和当前类A在同一个包下的类,不需要import引入之外,其他所有的包下的类在被使用之前都要import引入。

    1.2、简介

      

    二、Arrays类中方法调用

      Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用" 而不是 "不能")

    2.1、toString()方法

      把数组转换位字符串形式并返回

      

            int[] a = {1,3,5,7,9};
            System.out.println(Arrays.toString(a));   

      结果:[1, 3, 5, 7, 9]

    2.2、binarySearch()方法 

      在数组中查找指定元素并返回其下标

        注意:使用二分搜索法来搜索指定的数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过sort方法等)。如果没有对数组进行排序,则结果是不确定的。

                  如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。

      

            int[] a = {1,3,5,7,9};
            int bs = Arrays.binarySearch(a, 7);
            System.out.println(bs);  

         结果:3

    2.3、sort()方法

      把数据中的元素进行排序

      

      1)sort(int[] a)    对指定的 int 型数组按数字升序进行排序 

            int[] a = {3,5,1,9,7};
            System.out.println("before"+Arrays.toString(a));
            Arrays.sort(a);
            System.out.println("after"+Arrays.toString(a));    

              结果:before[3, 5, 1, 9, 7]
                          after[1, 3, 5, 7, 9]

      2)sort(byte[] a, int fromIndex, int toIndex)     对指定 byte 型数组的指定范围按数字升序进行排序。

        参数概述: 

                a - 要排序的数组

          fromIndex - 要排序的第一个元素的索引(包括)

          toIndex - 要排序的最后一个元素的索引(不包括)

      3)sort(T[] a, Comparator<? super T> c)       根据指定比较器产生的顺序对指定对象数组进行排序

    2.4、copyOf()方法

      复制或者截取指定数组并返回

      

            int[] a = {1,3,5,7,9};
            int[] copy = Arrays.copyOf(a, 8);
            System.out.println(Arrays.toString(copy));  

             结果:[1, 3, 5, 7, 9, 0, 0, 0]

    2.5、copyOfRange()方法

      将数组中指定范围复制新数组并返回

        copyOfRange(int[] original, int from, int to)       将指定数组的指定范围复制到一个新数组。

          参数:original - 将要从其复制一个范围的数组

          from - 要复制的范围的初始索引(包括)

          to - 要复制的范围的最后索引(不包括)。(此索引可以位于数组范围之外)。 

      

    2.6、equals()方法

       比较俩个数组是否相等

      

            int[] a = {1,3,5,7,9};
            int[] b = {1,3,5,7,9};
            boolean eq = Arrays.equals(a, b);
            System.out.println(eq);
            System.out.println(a==b);

            结果:true

                        false

      注意:==比较的是引用所指向对象的内存地址
                    Arrays.equals方法比较是俩个数组中的内容

    2.7、fill()方法

      用指定值去填充数组对象

      

      1)fill(int[] a, int val)    将指定的 int 值分配给指定 int 型数组的每个元素

            int[] a = {1,3,5,7,9};
            Arrays.fill(a, 666);
            System.out.println(Arrays.toString(a));

      结果:[666, 666, 666, 666, 666]

      2)fill(int[] a, int fromIndex, int toIndex, int val)     将指定的 int 值分配给指定 int 型数组指定范围中的每个元素

        参数:    a - 要填充的数组

            fromIndex - 要使用指定值填充的第一个元素的索引(包括)

            toIndex - 要使用指定值填充的最后一个元素的索引(不包括)

            val - 要存储在数组所有元素中的值 

    2.8、asList()方法

      可以把数组转换为List集合

      

            int[] a = {3,5,1,9,7};
            List<int[]> list = Arrays.asList(a);

    2.9、hashCode()方法

      基于指定数组的内容返回哈希码

      

            int[] a = {3,5,1,9,7};
            System.out.println(Arrays.hashCode(a));  

           结果:31549916

    喜欢就点个“推荐”哦!

  • 相关阅读:
    通用js模块02:validutils.js
    通用js模块04:cookieUtils.js
    通用js模块03:formatutils.js
    通用js模块01:stringutils.js
    应用开发平台与代码生成工具感想
    linq to sql 中isnumeric的使用
    很惭愧啊
    错误:”未能加载文件或程序集“System.Web.Mvc, Version=2.0.0.0” 解决方法
    今天又温习了一下磁盘阵列的概念
    ashx的说明
  • 原文地址:https://www.cnblogs.com/zhangyinhua/p/7746836.html
Copyright © 2011-2022 走看看