Array是flect下的一个类,并且不能被new出来,也就是不能被实例化,它的构造器被private所修饰,且由于类被final修饰因此不能被继承,参考源码如下
package flect;/*** The {@code Array} class provides static methods to dynamically create and* access Java arrays.** <p>{@code Array} permits widening conversions to occur during a get or set* operation, but throws an {@code IllegalArgumentException} if a narrowing* conversion would occur.** @author Nakul Saraiya*/
public final
class Array {/*** Constructor. Class Array is not instantiable.*/private Array() {}// 以下省略
}
public final class Array extends ObjectThe Array class provides static methods to dynamically create and access Java arrays.
Array permits widening conversions to occur during a get or set operation, but throws an IllegalArgumentException if a narrowing conversion would occur.
静态方法:
public static Object newInstance(Class<?> componentType, int length)throws NegativeArraySizeException {return newArray(componentType, length);}public static Object newInstance(Class<?> componentType, dimensions)throws IllegalArgumentException, NegativeArraySizeException {return multiNewArray(componentType, dimensions);}public static native int getLength(Object array)throws IllegalArgumentException;public static native Object get(Object array, int index)throws IllegalArgumentException, ArrayIndexOutOfBoundsException;public static native void setBoolean(Object array, int index, boolean z)throws IllegalArgumentException, ArrayIndexOutOfBoundsException;
Java中最基本的一个存储结构。提供了动态创建和访问 Java 数组的方法。其中的元素的类型必须相同。效率高,但容量固定且无法动态改变。它无法判断其中实际存有多少元素,length只是告诉我们array的容量。
这个类提供的好用的方法远远多于Array,也是平时我们开发时候经常使用的一个工具类,下面来看看
Arrays是java.util包下的一个工具类,提供了许多对数组操作的静态方法,包括数组的排序,对比,转化等等系列方法,十分的好用。
静态类Arrays
此静态类专门用来操作array ,提供搜索、排序、复制等静态方法。equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。sort():用来对array进行排序。binarySearch():在排好序的array中寻找元素。Arrays.asList(array):将数组array转化为List
Arrays.sort
从小到大排序
public static void main(String[] args) {int[] array = {3,2,1,4,5};Arrays.sort(array); // 从小到大排序System.out.String(array)); // 输出 [1, 2, 3, 4, 5]}
从大到小排序:
重写compare方法来实现从大到小。
public static void main(String[] args) {Integer[] array = {3,2,1,4,5};Comparator<Integer> cmp = new Comparator<Integer>() {public int compare(Integer i1, Integer i2) {return i2-i1;}};Arrays.sort(array,cmp); // 从大到小排序System.out.String(array)); // 输出 [5, 4, 3, 2, 1]}
Arrays.equals 比较一维数组
Arrays.deepEquals 比较多维数组
toArray
Arrays.asList
public static void main(String[] args) {Integer[] array = {1,2,3};List<Integer> arrayList = new ArrayList<>(Arrays.asList(array)); // 数组转ArrayListSystem.out.println(arrayList); // 输出 [1, 2, Array(); // ArrayList转数组}
本文发布于:2024-01-28 23:31:09,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170645587211085.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |