数组工具类Arrays的特性容易导致的问题

  1. 数组用使用Array.asList()方法转为List时,数组内必须是对象类型,基本类型会抛出异常
  2. 通过Array.asList()获得的List集合被修改时,原数组也会同步修改。

Array.sort()从大到小排序的实现方法

一般情况下我们都会遇到将数组从大到小排序,但是Java系统的Arrays.sort()函数是将数组从小到大排序
这个时候,我们就需要重写compare方法来实现从大到小。

需要注意的是,arr只能是Integer、Double之类的包装类,不能使用基本类型

  1. 自定义排序器,实现Comparator接口中的compare方法
  2. 排序器实例化
  3. 向传入Arrays排序器和要排序的数组

class Mycomparator implements Comparator<Integer> {

@Override
public int compare(Integer o1, Integer o2) {

if (o1 > o2) // 默认是o1 < o2时返回-1, 以下同理
return -1;
if (o1 < o2) return 1;
return 0;
}
}

Comparator<Integer> comparer = new Mycomparator(); // 实例化一个Comparator对象

Arrays.sort(arrsExmple, comparer);

初始化

  1. 类型名[] 数组名 = new 类型名[数组长度] (声明和初始化一起进行)

  2. 类型名[] 数组名 = {数据1, 数据2, 数据3, ……, 数据n}(声明和初始化一起进行)

  3. 类型名[] 数组名 = new 类型名[]{数据1, 数据2, 数据3, ……, 数据n}(声明和初始化一起进行)