• java 中java.util.Arrays类---常用函数记录


    java.util.Arrays主要是用来对数组进行操作的类,主要包括以下方法:

    1.数组转化列表,得到固定大小的列表,Arrays.asList(...);

    public static <T> List<T> asList(T... a)
    返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)此方法同 Collection.toArray() 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess

    此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:

         List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");

    2.数组中查找元素(二分法查找),必须确保数组用sort()排过序,Arrays.binarySearch(byte[] a, int fromIndex, int toIndex, byte key) ;

    (1)public static int binarySearch(byte[] a,byte key)

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

    (2)public static int binarySearch(byte[] a,int fromIndex,int toIndex, byte key)

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

    3.计算数组的哈希码,Arrays.hashCode(...);

    4.复制数组内容,Arrays.copyOf(boolean[] original, int newLength) 

    public static int[] copyOf(int[] original,int newLength)
    复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。对于在原数组和副本中都有效的所有索引,这两个数组将包含相同的值。对于在副本中有效而在原数组无效的所有索引,副本将包含 0。当且仅当指定长度大于原数组的长度时,这些索引存在。

    5.自定义要复制的数组内容,Arrays.copyOfRange(boolean[] original, int from, int to) 

    public static <T> T[] copyOfRange(T[] original,int from,int to)
    将指定数组的指定范围复制到一个新数组。该范围的初始索引 ( from) 必须位于 0 和 original.length(包括)之间。 original[from] 处的值放入副本的初始元素中(除非 from == original.length 或 from == to)。原数组中后续元素的值放入副本的后续元素。该范围的最后索引 ( to)(必须大于等于 from)可以大于 original.length,在这种情况下, null 被放入索引大于等于 original.length - from 的副本的所有元素中。返回数组的长度为 to - from

    所得数组与原数组属于完全相同的类。

    6.两个数组内容比较,Arrays.equals(boolean[] a, boolean[] a2) 

    public static boolean equals(boolean[] a, boolean[] a2)
    如果两个指定的 boolean 型数组彼此 相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。此外,如果两个数组引用都为 null,则认为它们是相等的。

    7.向数组中填值,Arrays.fill(boolean[] a, boolean val) 

    (1)public static void fill(byte[] a, byte val)
    将指定的 byte 值分配给指定 byte 节型数组的每个元素。
    (2)public static void fill(byte[] a,int fromIndex,int toIndex,byte val)
    将指定的 byte 值分配给指定 byte 型数组指定范围中的每个元素。填充的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,则填充范围为空。)

    8.数组排序Arrays.sort()

      (1)public static void sort(byte[] a)

      对指定的 byte 型数组按数字升序进行排序。

      (2)public static void sort(byte[] a,int fromIndex,int toIndex)

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

    9.数组转为字符串toString(byte[] a) 

    public static String toString(float[] a)
    返回指定数组内容的字符串表示形式。字符串表示形式由数组的元素列表组成,括在方括号( "[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(byte) 转换为字符串。如果 a 为 null,则返回 "null"
    如:
    import java.util.Arrays;
    
    public class test5 {
    	public static void main(String[] args) {
    		int[] num = {1,-2,3,10,-4,7,2,-5};
                    System.out.println(Arrays.toString(num));
    		System.out.println(Arrays.toString(num).split(",").length);
    		for (String s : Arrays.toString(num).split(",")){
    			System.out.println(s);
    		}
    
     }
    }
    输出为:
    [1, -2, 3, 10, -4, 7, 2, -5]
    8
    [1
     -2
     3
     10
     -4
     7
     2
     -5]
    

      



  • 相关阅读:
    Spring第五篇【cglib、手动实现AOP编程】
    Spring第四篇【Intellij idea环境下、Struts2和Spring整合】
    Spring第三篇【Core模块之对象依赖】
    Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】
    Spring第一篇【介绍Spring、引入Spring、Spring六大模块】
    Hibernate第十二篇【二级缓存介绍、缓存策略、查询缓存、集合缓存】
    Exception in thread "main" org.hibernate.MappingException: You may only specify a cache for root
    Hibernate第十一篇【配置C3P0数据库连接池、线程Session】
    Hibernate第十篇【Hibernate查询详解、分页查询】
    Hibernate第九篇【组件映射、继承映射】
  • 原文地址:https://www.cnblogs.com/zz22--/p/10707292.html
Copyright © 2020-2023  润新知