java数组定义和常用数组的操作方法

java数组

数组定义

// 有初始值
String[] array = {"hello","world"};
String[][] array = {{"hello","world"},{"my","java"}};
// 无初始值
String[] array = new String[10];
String[][] array = new String[10][10];

Arrays常见方法

Arrays
equals()
fill()
sort()
binarySearch()
toString()
hashCode()
asList()

Type 包括 boolean,byte,char,double,float,int,long,short,object

fill()

fill()方法主要包括2个方法:

fill(Type[],Type val)

``fill(Type[] a,int fromIndex,int toIndex,Type val)`

示例:

public static void main(String[] args) {
    int[] array = new int[10];
    int[] array1 = new int[10];
    Arrays.fill(array,0,5,2);
    Arrays.fill(array1,3);
    System.out.println(Arrays.toString(array));
    System.out.println(Arrays.toString(array1));
}
/** 输出
[2, 2, 2, 2, 2, 0, 0, 0, 0, 0]
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
/**

equals()

数组相等的条件是元素个数必须相等,并且对应位置上的元素也必须相等

public static void main(String[] args) {
    int[] array = new int[10];
    int[] array1 = new int[10];
    int[] array2 = new int[10];
    Arrays.fill(array,2);
    Arrays.fill(array1,3);
    Arrays.fill(array2,2);
  	//true
    System.out.println(Arrays.equals(array,array2));
  	//false
    System.out.println(Arrays.equals(array,array1));
}

asList()

public static <T> List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表。

public static void main(String[] args) {
  			// 定义固定长度list
        List<String> stooges = Arrays.asList("a","b","c","d");
				// stooges.add("hello"); 不允许添加元素
        for(String obj:stooges){
            System.out.println(obj);
        }
    }

binarySearch()

binarySearch()方法主要包括2个方法:

binarySearch(Type[],Type val)

``binarySearch(Type[] a,int fromIndex,int toIndex,Type val)`

该方法是使用二分查找查找有序序列的方法,首先一定要保证数组是升序的不然返回的结果是-1

可以使用 sort()方法进行排序,sort()方法是使用经过调优后的快速排序算法进行升序排序的

public static void main(String[] args) {
    int[] array = {1,2,3,4,5,6,7,8,9};
    int ans = Arrays.binarySearch(array,4);
    System.out.println(ans);
}

copyOf()copyOfRange()

用来复制数组的

public static void main(String[] args) {
    int[] array = {9,8,7,6,5,4,3,2,1};
    int[] ans = Arrays.copyOf(array,5);
    int[] ans1 = Arrays.copyOfRange(array,4,9);
    System.out.println(Arrays.toString(array));
    System.out.println(Arrays.toString(ans));
    System.out.println(Arrays.toString(ans1));
}

deepEquals(Object[] a,Object[] b)

如果两个指定数组彼此是深层相等 的,则返回 trueArrays.deepEquals()只能比较Object类,不能比较基本类型,Objects.deepEquals()可以比较基本类型

public static void main(String[] args) {
    Integer[] array = {9,8,7,6,5,4,3,2,1};
    Integer[] array1 = {9,8,7,6,5,4,2,2,1};
    System.out.println(Objects.deepEquals(array,array1));
    System.out.println(Arrays.deepEquals(array1,array));
}

deepHashCode(Object[] a)

基于指定数组的“深层内容”返回哈希码。

public static void main(String[] args) {
    Integer[] array = {9,8,7,6,5,4,3,2,1};
    Integer[] array1 = {9,8,7,6,5,4,2,2,1};
    System.out.println(Arrays.deepHashCode(array));
    System.out.println(Arrays.deepHashCode(array1));
}

deepToString(Object[] a)

返回指定数组“深层内容”的字符串表示形式。

public static void main(String[] args) {
    Integer[] array = {9,8,7,6,5,4,3,2,1};
    System.out.println(Arrays.deepToString(array));
}

hashCode(Type[] a)

基于指定数组的内容返回哈希码。

public static void main(String[] args) {
    Integer[] array = {9,8,7,6,5,4,3,2,1};
    System.out.println(Arrays.hashCode(array));
}

sort(Type[] a)

对数组进行排序,内部使用算法是双轴快排(DualPivotQuicksort)

public static void main(String[] args) {
    Integer[] array = {9,8,7,6,5,4,3,2,1};
    Arrays.sort(array);
    System.out.println(Arrays.toString(array));
}

toString(Type[] a)

返回指定数组内容的字符串表示形式。

public static void main(String[] args) {
    Integer[] array = {9,8,7,6,5,4,3,2,1};
    System.out.println(Arrays.toString(array));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值