1.数组排序
jdk中自带的Arrays工具类可以实现对数组排序功能。
import java.util.Arrays;
public static void sortArray(int[] array) {
// 直接在原数组上进行排序
Arrays.sort(array);
}
注意sort方法是对数组原地排序,并不会返回一个新数组,返回类型为void。
如果要逆序排,可以按如下操作
import java.util.Collections;
import org.apache.commons.lang3.ArrayUtils;
public static void sortArrayDesc(int[] array) {
Integer[] newArray = ArrayUtils.toObject(array);
Arrays.sort(newArray, Collections.reverseOrder());
}
传入一个Comparator接口的实现类REVERSE_ORDER,即可实现逆序排列。
注意此时不能使用基本类型int, long, double这种,需要转换成相应的包装类。
2.数组逆序
commons-lang包 org.apache.commons.lang.ArrayUtils类,有许多针对数组的操作,下面我们挑一些常用的方法示例。
首先在pom文件中添加如下依赖,导入commons-lang包。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
对数组进行反转如下
public static void reverse(int[] array) {
// 直接在原数组上进行反转
ArrayUtils.reverse(array);
}
3.原始类型与对象类型数据转换
public static void op3() {
int[] array = {1, 2, 3, 4, 5};
// 原始类型数组转换成对象类型数组
Integer[] newArray = ArrayUtils.toObject(array);
for(int element : newArray) {
System.out.print(element + " ");
}
System.out.println();
// 对象类型数组转换成原始类型数组
Integer[] ints = {6, 7, 8, 9};
int[] newInts = ArrayUtils.toPrimitive(ints);
for(int element : newInts) {
System.out.print(element + " ");
}
}
4.其他数组常用操作
public static void op2() {
int[] array = {1, 2, 3};
// 添加一个元素,并生成新数组
int[] newArray = ArrayUtils.add(array, 4);
int[] array2 = {5, 6};
// 合并两个数组
array = ArrayUtils.addAll(newArray, array2);
// 判断数组中是否存在某个元素
boolean flag = ArrayUtils.contains(array, 5);
// 判断数组是否为空
boolean isEmpty = ArrayUtils.isEmpty(array);
// 判断数组是否包含指定值,如果有返回index,否则返回-1
int index = ArrayUtils.indexOf(array, 5);
// 删除数组中指定index元素
array = ArrayUtils.remove(array, 0);
// printarr(array); [2, 3, 4, 5, 6]
// 截取子数组,不包含右侧元素,返回新数组
array = ArrayUtils.subarray(array, 0, array.length - 2);
}