程序笔记   发布时间:2022-07-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了工具类Arrays大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Arrays@H_944_1@

java.lang.object  java.util.Arrays

此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。@H_944_1@

除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。 @H_944_1@

 @H_944_1@

通过以下代码讲解Arrays工具类中的各种方法的作用@H_944_1@

sort:@H_944_1@

对指定类型数组的指定范围按数字升序进行排序。排序的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,则排序范围为空。)@H_944_1@

该排序算法是一个经过调优的快速排序法,改编自 Jon l. Bentley 和 m. Douglas McIlroy 合著的 ENGIneering a Sort Function", Software-Practice and Experience Vol. 23(11) P. 1249-1265 (November 1993)。此算法在许多数据集上提供 n*log(n) 性能,这导致其他快速排序会降低二次型性能。  @H_944_1@

 @H_944_1@

import java.util.Arrays;
public class ArrayTools {
    public static void main(String[] args)
    {
        int a[]=new int[]{1,3,2,4,6,5};
        //排序
        Arrays.sort(a);
        for(int i=0;i<a.length;i++)
        {
            System.out.print(a[i]+" ");
        }
    }
}

binarySearch:

public static int binarySearch(object []a,object key)@H_944_1@

使用二分搜索法来搜索指定类型数组的范围,以获得指定的值。必须在进行此调用之前对范围进行排序(通过 sort(byte[], int, int) 方法)。如果没有对范围进行排序,则结果是不确定的。如果范围包含多个带有指定值的元素,则无法保证找到的是哪一个。 @H_944_1@

参数:@H_944_1@

a - 要搜索的数组@H_944_1@

key - 要搜索的值 @H_944_1@

返回:@H_944_1@

如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。@H_944_1@

//二分搜索
        int key=Arrays.binarySearch(a,3);
        System.out.print("key:n"+key);//不在数组内    int key2=Arrays.binarySearch(a,7);    System.out.print("key:n"+key2+"n");//-7,实际上并没有插入数组,只是返回插入点

 @H_944_1@

binarySearch(object[ ], int fromIndex, int endIndex, object key):@H_944_1@

a - 要搜索的数组@H_944_1@

fromIndex - 要搜索的第一个元素的索引(包括)@H_944_1@

toIndex - 要搜索的最后一个元素的索引(不包括)@H_944_1@

key - 要搜索的值 @H_944_1@

 @H_944_1@

equals

public static Boolean equals(object[] a,object[] a2)

参数:

a - 将测试其相等性的一个数组a2 - 将测试其相等性的另一个数组 返回:如果两个数组相等,则返回 true,反之返回false
//equals
        int c[]=new int[]{1,2,3,7,8,9};
        int b[]=new int[]{1,2,3,4,5,6};
        System.out.print(Arrays.equals(b,C));

 @H_944_1@

 @H_944_1@

hashCode:@H_944_1@

public static int hashCode(object[] a)@H_944_1@

参数:@H_944_1@

a - 要计算其哈希值的数组 @H_944_1@

返回:@H_944_1@

a 数组基于内容的哈希码@H_944_1@

hashCode不但能计算数组的哈希值,也能够计算String类的哈希值,每个对象都有对应的hashcode,hashcode也就是在哈希表中的位置 ,这里要注意,物理地址的概念和哈希值没有半毛钱关系,物理地址是对象在内存中的地址。hashcode通过hash函数得到。@H_944_1@

常见的hash函数:@H_944_1@

  -直接取余法:f(X)=x mod maxM(maxM一般是不太接近2^t的一个质数)@H_944_1@

  -乘法取整法@H_944_1@

  -平方取中法:平方后取中@H_944_1@

Java中的hashCode方法:@H_944_1@

//数组hash值
int b[]=new int[]{1,2,3,4,5,6};
System.out.print("n"+Arrays.hashCode(b));
//字符串hash值
String str=new String("www");
System.out.print("n"+str.hashCode());

 @H_944_1@

toString:@H_944_1@

返回指定数组内容的字符串表示形式。如果数组包含作为元素的其他数组,则通过从 Object 中继承的 Object.toString() 方法将它们转换为字符串,这描述了它们的标识,而不是它们的内容。@H_944_1@

此方法返回的值等于 Arrays.asList(a).toString() 返回的值,除非 anull在这种情况下返回 "null"。 @H_944_1@

//toString((带逗号分隔)
int c[]=new int[]{1,2,3,7,8,9};
System.out.print("n"+Arrays.toString(C));

工具类Arrays@H_944_1@@H_944_1@

 @H_944_1@

deepToString:@H_944_1@

返回指定数组“深层内容”的字符串表示形式。如果数组包含作为元素的其他数组,则字符串表示形式包含其内容等。此方法是为了将多维数组转换为字符串而设计的。@H_944_1@

//deepToString
int k[][]=new int[][]{{1,2,3},{1,2,3}};System.out.print(Arrays.deepToString(k));

工具类Arrays@H_944_1@@H_944_1@

 @H_944_1@

大佬总结

以上是大佬教程为你收集整理的工具类Arrays全部内容,希望文章能够帮你解决工具类Arrays所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。