文章目录
Arrays类常见方法应用案例
- Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)。
1.toString()返回数组的字符串形式
2.sort()排序(自然排序和定制排序)
通过匿名内部类重写compare方法实现sort反排序(难度较大,学完基础回头再看)
package com.tao.arrays_;
import java.util.Arrays;
import java.util.Comparator;
/**
* Create By 刘鸿涛
* 2022/1/3 21:49
*/
public class ArryasMethod01 {
public static void main(String[] args) {
Integer[] integers = {40, 20, 90};
Arrays.sort(integers, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
return i2 - i1;
}
});
System.out.println(Arrays.toString(integers));
}
}
3.binarySearch 通过二分搜索法进行查找,要求必须排好序
如果没有这个元素,则返回 return -(low + 1)
package com.tao.arrays_;
import java.util.Arrays;
/**
* Create By 刘鸿涛
* 2022/1/3 22:09
*/
public class ArryasMethod02 {
public static void main(String[] args) {
Integer[] arr = {1, 2, 90, 123, 555};
int index = Arrays.binarySearch(arr, 92);
//因为92不再数组中因此根据源码来看,返回的是
//return -(low + 1); low代表它应该存在的位置
System.out.println(index);
}
}
4.copyOf数组元素的复制
越界情况赋值为“null“
package com.tao.arrays_;
import java.util.Arrays;
/**
* Create By 刘鸿涛
* 2022/1/3 22:09
*/
public class ArryasMethod02 {
public static void main(String[] args) {
Integer[] arr = {1, 2, 90, 123, 555};
Integer[] newArr = Arrays.copyOf(arr,arr.length + 1);
System.out.println(Arrays.toString(newArr));
}
}
如果长度小于0,会报异常
5.fill 数组元素的填充
6.equals比较两个数组元素内容是否完全一致
boolean equals = Arrays.equals(arr,arr2);
package com.tao.arrays_;
import java.util.Arrays;
/**
* Create By 刘鸿涛
* 2022/1/3 22:09
*/
public class ArryasMethod02 {
public static void main(String[] args) {
Integer[] arr = {1, 2, 90, 123, 555};
Integer[] arr2 = {1, 2, 90, 123, 555};
System.out.println(Arrays.equals(arr,arr2));
}
}
7.asList 将一组值,转换成list(集合,泛型)
List<Integer> asList = Arrays.asList(2,3,4,5,6,1);
System.out.println("asList=" + asList);
package com.tao.arrays_;
import java.util.Arrays;
import java.util.List;
/**
* Create By 刘鸿涛
* 2022/1/3 22:09
*/
public class ArryasMethod02 {
public static void main(String[] args) {
//1.asList方法,会将(2,3,4,5,6,1)数组转成一个List集合
//2.返回的 asList 编译类型 List(接口)
//3.asList 运行类型 class java.util.Arrays$ArrayList,是Arrays类的静态内部类 private staitc class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.Serializable
List<Integer> asList = Arrays.asList(2,3,4,5,6,1);
System.out.println("asList= " + asList );
System.out.println("asList的运行类型" + asList.getClass());
}
}