Java Arrays类

2021/4/8 14:55:37

本文主要是介绍Java Arrays类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java Arrays 类

定义:

  • Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法。

Arrays 类的常用方法

  • Arrays.asList(T… data)

注意:该方法返回的是 Arrays 内部静态类 ArrayList,而不是我们平常使用的 ArrayList,,该静态类 ArrayList 没有覆盖父类的 add(), remove() 等方法,所以如果直接调用,会报 UnsupportedOperationException 异常

Integer[] data = {1, 2, 3,4,5};
List<Integer> list = Arrays.asList(data);
for (Integer integer : list) {
    System.out.print(integer+"\t");
}
//1	 2	3	4	5
  • Arrays.fill(Object[] array, Object obj)
Integer[] data = {1, 2, 3, 4, 5};
Arrays.fill(data, 9);
System.out.println(Arrays.toString(data)); 

//[9, 9, 9, 9, 9]
  • Arrays.sort(Object[] array)

    String[] data = {"1", "4", "3", "2"};
    System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]
    Arrays.sort(data);
    System.out.println(Arrays.toString(data)); // [1, 2, 3, 4]
    
    
  • Arrays.sort(T[] array, Comparator<? super T> comparator)

    • 使用自定义比较器,对数组元素进行排序 (串行排序)

      String[] data = {"1", "4", "3", "2"};
      System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]
      // 实现降序排序,返回-1放左边,1放右边,0保持不变
      Arrays.sort(data, (str1, str2) -> {
          if (str1.compareTo(str2) > 0) {
      		return -1;
          } else {
              return 1;
          }
      });
      System.out.println(Arrays.toString(data)); // [4, 3, 2, 1]
      
      
  • Arrays.binarySearch(Object[] array, Object key)

    注意:在调用该方法之前,必须先调用 Arrays.sort() 方法进行排序,如果数组没有排序,那么结果是不确定的,此外如果数组中包含多个指定元素,则无法保证将找到哪个元素

    • 当搜索元素是数组元素时,返回该元素的索引值

    • 当搜索元素不是数组元素时,返回 - (索引值 + 1)

      举例:

      搜索元素是数组元素,返回该元素索引值

      Integer[] data = {1, 3, 5, 7};
      Arrays.sort(data);
      System.out.println(Arrays.binarySearch(data, 1)); // 0
      
      

      搜索元素不是数组元素,且小于数组中的最小值

Integer[] data = {1, 3, 5, 7};
Arrays.sort(data);
// 此时程序会把数组看作 {0, 1, 3, 5, 7},此时0的索引值为0,则搜索0时返回 -(0 + 1) = -1
System.out.println(Arrays.binarySearch(data, 0)); // -1

  • Arrays.equals(Object[] array1, Object[] array2)

    • 判断两个数组是否相等

      • 数组元素为基本数据类型时,依次比较值
      • 数组元素为引用数据类型时,依次调用元素的 equals() 方法进行比较
    • 即如果两个数组被认为是相等的,则两个数组中应包含相同顺序的相同元素

      Integer[] data1 = {1, 2, 3};
      Integer[] data2 = {1, 2, 3};
      System.out.println(Arrays.equals(data1, data2)); // true
      
      
  • Arrays.toString(Object[] array)

    • 返回数组元素的字符串形式

      Integer[] data = {1, 2, 3};
      System.out.println(Arrays.toString(data)); // [1, 2, 3]
      
      


这篇关于Java Arrays类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程