1. Arrays类

Arrays类具有以下常用功能:

  • 给数组赋值:通过fill方法填充。

    fill(arrays,[fromIndex], [toIndex], val)将arrays的某一区域的值填充为val。

  • 对数组排序:通过sort方法,按升序。

    sort(arrays)将arrays数组内容进行升序排序。

  • 比较数组:通过equals方法比较数组中元素值是否相等。

    equals(arrays1, arrays2)判断arrays1和arrays2是否相等。

  • 获取数组内容:通过toString方法。

    toString(arrays)返回数组内容,可供打印。

  • 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

    binarySearch(arrays, [fromIndex], [toIndex], val)通过二分法查找arrays指定区域中是否有val值,有则返回在数组中的索引。

其中:fromIndex和toIndex可选(重载),分别是需要操作的数的开始和结束索引。

2. 坑

  • Collections.singletonList(new Object());生成的List为SingletonList,位于Collection内,也并无add等操作的实现,调用会报错。

    private static class SingletonList<E>
        extends AbstractList<E>
        implements RandomAccess, Serializable {
        SingletonList(E obj)  {element = obj;}
    }
    
    // ...
    public static <T> List<T> singletonList(T o) {
        return new SingletonList<>(o);
    }
    
  • Arrays.asList(new Object());生成的ArrayList不是常见的ArrayList,而是Arrays的静态内部类,也并无add等操作的实现,调用会报错。

    @SafeVarargs
    @SuppressWarnings("varargs")
    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }
    
    // ...
    private static class ArrayList<E> extends AbstractList<E>
        implements RandomAccess, java.io.Serializable
    

以上两个坑,如果生成的List需要进行add等操作,可以使用ArrayList的有参构造传入Collection生成新的list进行操作。

Copyright © rootwhois.cn 2021-2022 all right reserved,powered by GitbookFile Modify: 2023-03-05 10:55:52

results matching ""

    No results matching ""