commons之ArrayUtils


import org.apache.commons.lang3.ArrayUtils;

public class ArrayUtilsDemo {

private static final char[] chars = { 'a', 'b', '1', '2', 'c', 'd', 'e',
'f', 'a' };
private static final double[] doubles = { 1, 2, 3, 44, 5, 6, 7, 8, 9 };
private static final double[] nn = null;
private static final Double[] DD = { 1.2, 3.1, 444.1 };
private static final Object[] ob = null;

public static void main(String[] args) {
/*
* 根据EMPTY_*_ARRAY返回一个长度为0的数组. *包含
* object,class,string,long,long_object,int,integer_object,
* short,short_object,byte,byte_object,double,double_object,float,
* float_object,boolean,boolean_object,char,char_object.
*/
System.out.println(ArrayUtils.EMPTY_CHAR_ARRAY);

/*
* 返回-1 表示数组下标未找到.
*/
System.out.println(ArrayUtils.INDEX_NOT_FOUND);

/*
* 复制给定的数组,并增加了在新的数组的末尾给定元素。ArrayUtils.add(array, element)
*
* @param array 复制的数组或添加的元素,可能为null
*
* @param element 添加一个新的元素对象到数组的最后一个索引后面
*/
System.out.println(ArrayUtils.add(chars, 'F'));

/*
* 添加到一个新的数组到指定的数组。ArrayUtils.add(array, element)
*
* @param array1 第一个数组或元素,可能为null
*
* @param array2 复制在第一个数组后的的数组或添加的元素,可能为null ArrayUtils.addAll(null,
* null) = null ArrayUtils.addAll(array1, null) = cloned copy of array1
* ArrayUtils.addAll(null, array2) = cloned copy of array2
* ArrayUtils.addAll([], []) = [] ArrayUtils.addAll([null], [null]) =
* [null, null] ArrayUtils.addAll(["a", "b", "c"], ["1", "2", "3"]) =
* ["a", "b", "c", "1", "2", "3"]
*/
System.out.println(ArrayUtils.addAll(chars, chars));

/*
* 把array输出一个字符串数组.
*
* @param array 被转换的数组
*/
System.out.println("char -> String:" + ArrayUtils.toString(chars));
System.out.println("double -> String:" + ArrayUtils.toString(doubles));

/*
* 如果第一个参数不为null则输出第一个参数,如果为null则输出第二个字符串.
*
* @param array 得到一个数组 ,可以为null
*
* @param stringIfNull 如果array为null 则输出stringIfNull.
*/
System.out.println("array为null,显示X:" + ArrayUtils.toString(null, "X"));
System.out.println("array不为null,不显示X:"
+ ArrayUtils.toString(chars, "X"));

/*
* 判断数组是否为null, 其它类型同理.
*/
System.out.println("判断该数组为空,如果结果为true:" + ArrayUtils.isEmpty(chars));
System.out
.println("判断该数组不为空,如果结果为true:" + ArrayUtils.isNotEmpty(chars));

/*
* 克隆一个数组,如果数组为null则返回null, 其它类型同理.
*/
System.out.println(ArrayUtils.clone(chars));

/*
* 检查数组中是否存在指定的对象.
*
* @param array 搜索的数组
*
* @param objectToFind 搜索的对象 return true表示有数组有搜索的对象,false则没有.
*/
System.out.println("contains:" + ArrayUtils.contains(chars, 'a'));

/*
* 如果不为空获得数组的长度.
*/
System.out.println(ArrayUtils.getLength(nn));

/*
* 如果数组为null则返回一个长度为0的数组, 其它类型一样.
*/
System.out.println("****nullToEmpty****");
System.out.println(ArrayUtils.nullToEmpty(ob));
System.out.println(ArrayUtils.nullToEmpty(chars));
System.out.println(ArrayUtils.nullToEmpty(doubles));

/*
* 截取数组长度产生一个新的数组
*
* @param array 数组
*
* @param startIndexInclusive 开始索引,如果小于0则等于0
*
* @param endIndexExclusive 结束索引,如果大于数组最大数则等于array.length
*
* @return 返回一个新的数组,包含的元素为初始数组起始到结束索引之间. 其它类型同样.
*/
System.out.println("***subarray***");
System.out.println(ArrayUtils.subarray(chars, 0, 4));

/*
* 检查2个数组的长度是否相等,如果相等返回true,不相等返回false.
*/
System.out.println("***isSameLength***");
System.out.println(ArrayUtils.isSameLength(nn, doubles));

/*
* 比较2个数组类型是否相同,如果相同返回true,不相同返回false 数组为空报 IllegalArgumentException 错误
*/
System.out.println("***isSameType***");
System.out.println(ArrayUtils.isSameType(chars, doubles));

/*
* 反转数组. 其它类型同理.
*/
System.out.println("***reverse***");
char[] tmp = { 'a', 'b', '1', '2', 'c', 'd', 'e', 'f' };
System.out.println(ArrayUtils.toString(tmp));
ArrayUtils.reverse(tmp);
System.out.println(ArrayUtils.toString(tmp));

/*
* 获得数组给定值的索引
*
* @param array 通过寻找值搜索的数组,可以为null,
*
* @param valueToFind 寻找的值
*
* @return 给定值在数组里的index <pre> ArrayUtils.getLength(null) = 0
* ArrayUtils.getLength([]) = 0 ArrayUtils.getLength([null]) = 1
* ArrayUtils.getLength([true, false]) = 2 ArrayUtils.getLength([1, 2,
* 3]) = 3 ArrayUtils.getLength(["a", "b", "c"]) = 3 </pre>
*/
System.out.println("***indexOf***");
System.out.println(ArrayUtils.indexOf(chars, 'a'));

/*
* 获得数组给定值的索引
*
* @startIndex 搜索的起始索引. 即从startIndex开始进行索引 startIndex前的忽略.
*/
System.out.println(ArrayUtils.indexOf(chars, 'a', 1));

/*
* 返回符合数组给定值结尾的数组. 如果没有符合的返回 -1
*
* @startIndex 搜索的起始索引.
*/
System.out.println("***lastIndexOf***");
System.out.println(ArrayUtils.lastIndexOf(chars, 'e'));
System.out.println(ArrayUtils.lastIndexOf(chars, 'a', 8));

/*
* 基本类型数组 -->对象数组
*/
System.out.println("***toObject***");
long[] primitiveArray = new long[] { 12, 122, 345, 7678 };
System.out.println(ArrayUtils.toString(primitiveArray));
Long[] objectArray = ArrayUtils.toObject(primitiveArray);
System.out.println(ArrayUtils.toString(objectArray));

/*
* 对象数组-->基本类型数组
*/
System.out.println("***toPrimitive***");
Double[] doubleObjects = new Double[] { new Double(123.45),
new Double(566.3366) };
System.out.println(ArrayUtils.toString(doubleObjects));
double[] doublePrimitives = ArrayUtils.toPrimitive(doubleObjects);
System.out.println(ArrayUtils.toString(doublePrimitives));

System.out.println(ArrayUtils.toPrimitive(DD, 122));

/*
* 删除指定下标数组的值 * <pre> ArrayUtils.remove(["a"], 0) = []
* ArrayUtils.remove(["a", "b"], 0) = ["b"] ArrayUtils.remove(["a",
* "b"], 1) = ["a"] ArrayUtils.remove(["a", "b", "c"], 1) = ["a", "c"]
* </pre>
*/
char[] chartmp = { '1', '2', 'a' };
System.out.println("remove:");
System.out.println(ArrayUtils.toString(chartmp));
System.out.println(ArrayUtils.remove(chartmp, 0));

/*
* 删除指定元素的值. <pre> ArrayUtils.removeElement(null, "a") = null
* ArrayUtils.removeElement([], "a") = []
* ArrayUtils.removeElement(["a"], "b") = ["a"]
* ArrayUtils.removeElement(["a", "b"], "a") = ["b"]
* ArrayUtils.removeElement(["a", "b", "a"], "a") = ["b", "a"] </pre>
*/
System.out.println("***removeElement***");
System.out.println(ArrayUtils.toString(ArrayUtils.removeElement(
doubles, 44)));

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值