Apache的ArrayUtils工具类方法

// 1.add():形成一个新数组。
int[] arr = { 1, 2, 3 ,4};
int[] newArr = ArrayUtils.add(arr, 5); // 把元素赋值到最后一位
System.out.println(ArrayUtils.toString(newArr)); // {1,2,3,4}

// 2.addAll():合并两个数组。
int[] arr2 = {  5, 6 ,7};
int[] newArr = ArrayUtils.addAll(arr, arr2);
System.out.println(ArrayUtils.toString(newArr)); // {1,2,3,4,5,6,7}

// 3.contains():检查该数据在该数组中是否存在
boolean contains = ArrayUtils.contains(arr, 2); // 使用遍历判断相等
System.out.println(contains); // true

// 4.indexOf():从数组的第一位开始查询该数组中是否有指定的数值,存在返回index的数值,否则返回-1。
int indexOf = ArrayUtils.indexOf(arr, 2); // 遍历判断相等
System.out.println(indexOf); // 1

// 5.lastIndexOf():从数组的最后一位开始往前查询该数组中是否有指定的数值,存在返回index的数值,否则返回-1。
int lastIndexOf = ArrayUtils.lastIndexOf(arr, 2); // 遍历判断相等
System.out.println(indexOf); // 1

// 6.Insert():向指定的位置往该数组添加指定的元素,返回一个新的数组。
int[] newArr = ArrayUtils.insert(2, arr, arr2); // new新数组长度是源数组和目标数组的长度和,再把源数组和目标数组arraycopy到新数组
System.out.println(ArrayUtils.toString(newArr)); // {1,2,4,5,6,3}

// 7.isEmpty():判断该数组是否为空,返回一个boolean值。
boolean isEmpty = ArrayUtils.isEmpty(arr); // 调用getLength(array) == 0;
System.out.println(isEmpty); // false

//8.比较两个组数是否一样
int[] arr3 = { 1, 2, 3 ,4};
boolean equals = Arrays.equals(arr, arr3);
System.out.println(equals); // true

// 9.isNotEmpty():判断该数组是否为空,而不是null。
boolean isNotEmpty = ArrayUtils.isNotEmpty(arr);
System.out.println(isNotEmpty); // false

// 10.isSameLength():判断两个数组的长度是否一样,当数组为空视长度为0。返回一个boolean值。
// 实现原理是调用getLength(arr) == getLength(arr3)进行判断
boolean isSameLength = ArrayUtils.isSameLength(arr, arr3);
System.out.println(isSameLength); // true

// 11.isSameType():判断两个数组的类型是否一样,返回一个boolean值。
// 底层实现原理是调用array1.getClass().getName().equals(array2.getClass().getName())
boolean isSameType = ArrayUtils.isSameType(arr, arr3);
System.out.println(isSameType); // true

// 12.isSorted():判断该数组是否按照自然排列顺序排序,返回一个boolean值。
boolean isSorted = ArrayUtils.isSorted(arr); // 使用Comparator实现
System.out.println(isSorted); // true

// 13.remove():删除该数组指定位置上的元素,返回一个新的数组。
int[] newArr = ArrayUtils.remove(arr, 0);
System.out.println(ArrayUtils.toString(newArr)); // {2,3,4}

// 15.removeAll():删除指定位置上的元素,返回一个新的数组。
int[] newArr = ArrayUtils.removeAll(arr, 0, 1);
System.out.println(ArrayUtils.toString(newArr)); // {3,4}

// 16.removeElement():从该数组中删除第一次出现的指定元素,返回一个新的数组。
// 实现原理是使用indexOf()找出第一次出现的指定元素,在执行remove()操作
int[] newArr = ArrayUtils.removeElement(arr, 2);
System.out.println(ArrayUtils.toString(newArr)); // {1,3,4}

// 17.removeAllOccurences():从该数组中删除指定的全部元素,返回一个新的数组。16的一个是删除第一次出现的
int[] newArr = ArrayUtils.removeAllOccurences(arr, 2); // 遍历使用indexOf()找出所有指定元素,在执行removeAll()
System.out.println(ArrayUtils.toString(newArr)); // {1,3,4}

// 18.removeElements():从该数组中删除指定数量的元素,返回一个新的数组。
int[] newArr = ArrayUtils.removeElements(arr, 1, 2);
System.out.println(ArrayUtils.toString(newArr)); // {3,4}

// 19.reverse():数组反转,换位置
ArrayUtils.reverse(arr); //  首尾对称交换
System.out.println(ArrayUtils.toString(arr)); // {4,3,2,1}

// 20.subarray():截取数组(数组下标),返回一个新的数组
int[] subarray = ArrayUtils.subarray(arr, 0, 2);
System.out.println(ArrayUtils.toString(subarray)); // {1,2}

// 21.swap():指定该数组的两个位置的元素交换。
ArrayUtils.swap(arr, 1, 2);
System.out.println(ArrayUtils.toString(arr)); // {1,3,2,4}

// 22.toMap():将数组转换成Map,返回一个map的Object的集合。
String[][] strArr = { { "zhangsan", "nv" }, { "lisi", "nan" }, { "wagnwu", "nan" } };
Map colorMap = ArrayUtils.toMap(strArr);
System.out.println(colorMap);

// 23.toObject():将原始数据类型的数组转换成包装类数组。
ArrayUtils.toObject(arr); // 遍历转换
System.out.println(ArrayUtils.toString(arr)); // Integer类型

// 24.toPrimitive():将包装类数组转换成原始数据类型数组。
ArrayUtils.toPrimitive(arr);
System.out.println(ArrayUtils.toString(arr)); // int类型

// 25.toStringArray():将Object数组转换为String数组类型。
String[] strArr2 = ArrayUtils.toStringArray(new Object[]{ "1", "2" , "3"});
System.out.println(ArrayUtils.toString(strArr2)); // {1,2,3}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sheclockes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值