欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA——Arrays类常用方法详解

程序员文章站 2024-03-05 23:13:25
...

JAVA——Arrays类常用方法详解

初始化:

int[] a = {3,4,1,2,77,5,-6,33213};
int[] a2 = {3,4,1,2,77,5,-6,33213};
int[] a3 = {1,3,4,6,8,9};
int[] b = {1,2,3};

System.out.println("数组a地址:");
System.out.println(a); // [[email protected]

// 数组打印
System.out.println("数组a元素:");
System.out.println(Arrays.toString(a)); // [3, 4, 1, 2, 77, 5, -6, 33213]

数组排序——sort方法

Arrays.sort(arrayName[ ]);

具体代码如下:

// 数组排序sort方法:对数组进行永久性排序
 Arrays.sort(a);
 System.out.println("数组a排序后:");
 System.out.println(Arrays.toString(a)); // [-6, 1, 2, 3, 4, 5, 77, 33213]

sort方法默认为正序排列

数组填充——fill方法

Arrays.fill(arrayName[ ], value);

具体代码如下:

// fill填充数组
 System.out.println("fill填充:");
 Arrays.fill(a2,6666);
 Arrays.fill(b,7777);
 System.out.println(Arrays.toString(a2)); // [6666, 6666, 6666, 6666, 6666, 6666, 6666, 6666]
 System.out.println(Arrays.toString(b)); // [7777, 7777, 7777]

从上面的输出结果可以看出,fill方法存在很大限制:只能根据数组所定义的长度使用同一个数值进行填充

数组比较——equals方法

Arrays.equals(arrayName1[ ], arrayName1[ ]);

Arrays.equals方法要求数组的个数相等,而且对应位置的元素也要相等,才会返回true,否则返回false。

具体代码如下:

// 数组比较
System.out.println(Arrays.equals(a, a2)); // 这里数组a已经被排序,所以返回false
int[] c1 = {1, 2, 3};
int[] c2 = {1, 2, 3};
System.out.println(Arrays.equals(c1, c2)); // true

其实java中equals和==的用法及细节很值得学习,这里推荐邦☆杠师傅的博文:java中equals以及==的用法

二分查找——binarySearch方法

注意:使用该方法前需要对数组进行排序

binarySearch方法可以接收一个参数或者三个参数,区别如下:

单个参数

Arrays.binarySearch(arrayName[ ], key);

具体代码如下:

System.out.println("binarySearch二分查找:");
System.out.println("-- 单个参数:");
// {1,3,4,6,8,9}
System.out.println(Arrays.binarySearch(a3,4)); // 2
System.out.println(Arrays.binarySearch(a3,5)); // -4
System.out.println(Arrays.binarySearch(a3,6)); // 3
System.out.println(Arrays.binarySearch(a3,7)); // -5
System.out.println(Arrays.binarySearch(a3,8)); // 4
System.out.println(Arrays.binarySearch(a3,9)); // 5
System.out.println(Arrays.binarySearch(a3,10)); // -7

方法binarySearch(arrayName[ ], key)的返回值规则是:当数组后只有一个参数时,key为索引键,若key在数组中,则返回数组对应的索引;若key不在数组中,binarySearch方法会返回 “-” 加 索引键插入数组的位置

从上面代码的返回值可以发现,在数组a3中:

  1. key=4时,4在数组a3元素中第3个,索引为2
  2. key=5时,5不在数组a3中,索引键插入位置为第4个
  3. key=7时,7不在数组a3中,索引键插入位置为第5个

三个参数

Arrays.binarySearch(arrayName[ ], fromIndex, toIndex, key);

三个参数代表一个[fromIndex,toIndex]的范围和一个key索引键。

  1. 当key大于toIndex对应的值,不管在不在数组内,返回toIndex对应的位置即"-" 加 (endIndex+1)

    // {1,3,4,6,8,9}
    System.out.println(Arrays.binarySearch(a3,1,3,7)); // -4
    System.out.println(Arrays.binarySearch(a3,1,2,8)); // -3
    
  2. 当key小于fromIndex对应的值,不管在不在数组内,返回fromIndex对应的位置即"-" 加 (fromIndex+1)

    // {1,3,4,6,8,9}
    System.out.println(Arrays.binarySearch(a3,2,4,1)); // -3
    System.out.println(Arrays.binarySearch(a3,3,4,1)); // -4
    System.out.println(Arrays.binarySearch(a3,3,4,0)); // -4
    
  3. 当key在对应的元素的值的范围内,并且在数组中,返回索引;不在则返回插入位置。规则类似于单个参数时的情形

    // {1,3,4,6,8,9}
    System.out.println(Arrays.binarySearch(a3,2,4,6)); // 3
    System.out.println(Arrays.binarySearch(a3,2,4,7)); // -5
    

参考博客:

JAVA之数组查询binarySearch()方法详解

相关标签: JAVA学习 java

上一篇: 2021-01-13

下一篇: Arrays