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)));

	}

}

你可能感兴趣的:(apache,C++,c,C#,F#)