`
liukai
  • 浏览: 706787 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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

	}

}
分享到:
评论

相关推荐

    commons.lang ArrayUtils类的中文api

    ### 基于commons.lang ArrayUtils类的知识点详解 #### 一、ArrayUtils类简介 `ArrayUtils`类是Apache Commons Lang库中的一个重要工具类,主要用于处理数组的各种操作。相较于Java标准库中的数组操作,`ArrayUtils`...

    org.apache.commons.lang jar包下载(commons-lang3-3.1.jar)

    META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache.commons.lang.ArrayUtils.class org.apache.commons.lang.BitField.class org.apache.commons.lang.BooleanUtils.class org.apache....

    org.apache.commons.lang jar包下载

    META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache.commons.lang.ArrayUtils.class org.apache.commons.lang.BitField.class org.apache.commons.lang.BooleanUtils.class org.apache....

    org.apache.commons.lang包

    - **ArrayUtils**:处理数组的各种操作,如添加、删除、复制、转换等。 - **ClassUtils**:帮助处理类和对象相关的任务,如获取类名、比较类等。 - **DateUtils**:提供日期和时间的处理函数,包括格式化、解析、...

    Java字符串加密使用的一个jar包 commons-lang3-3.1.jar下载

    org.apache.commons.lang3.ArrayUtils.class org.apache.commons.lang3.BitField.class org.apache.commons.lang3.CharUtils.class org.apache.commons.lang3.ClassUtils.class org.apache.commons.lang3.Validate....

    commons-lang.jar

    META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache.commons.lang.ArrayUtils.class org.apache.commons.lang.BitField.class org.apache.commons.lang.BooleanUtils.class org.apache.commons...

    commons-lang-2.4.rar代码及jar文件

    例如,`ArrayUtils`可以方便地操作数组,添加、删除元素,甚至将数组转换为其他集合类型。`StringUtils`提供了大量的字符串操作方法,如拼接、替换、分割等,使得字符串处理更加简单高效。`BooleanUtils`则简化了对...

    Jakarta Commons组件之Lang

    2. **ArrayUtils**:针对数组的操作,如添加、删除、复制、填充、转换和比较。 3. **BooleanUtils**:对布尔值进行逻辑操作,如取反、比较等。 4. **NumberUtils**:提供了数值相关的辅助方法,如格式化、转换等。...

    commons-lang3-3.0-bin.zip

    2. **数组处理**:`ArrayUtils` 类提供了对数组的各种操作,如添加、删除、复制、比较和转换等。 3. **日期与时间**:`DateUtils` 提供了日期的格式化和解析,以及日期间的比较和计算。`DurationFormatUtils` 可以...

    commons-lang-2.6jar包

    6. **数组操作**:`ArrayUtils`包含了数组的添加、删除、复制、转换等操作,使得操作数组更加便捷。 7. **系统属性**:`SystemUtils`提供了一系列关于Java运行环境的属性,如操作系统信息、Java版本等。 8. **异常...

    Apache Commons工具集

    Apache Commons是Java开发中不可或缺的一部分,它提供了一系列实用的工具类和组件,极大地丰富了Java标准库的功能。...因此,深入学习和理解Apache Commons工具集是每个Java开发者必备的技能之一。

    Apache Commons 官方最近所有的jar包

    Apache Commons 是一个由 Apache 软件基金会维护的开源项目集合,它提供了许多Java实用工具类,以增强Java标准库的功能。这些jar包是开发者在处理常见编程任务时的得力助手,涵盖范围广泛,包括数据结构、网络通信、...

    commons所有jar包

    例如 `StringUtils`、`ArrayUtils` 和 `ObjectUtils`。 2. **Commons IO**:针对输入/输出操作的实用工具,如文件复制、文件过滤、流操作等。例如 `FileUtils`、`IOUtils` 和 `EndianUtils`。 3. **Commons ...

    commons-lang所有版本(1.0-3.4).zip

    - **ArrayUtils**:提供了数组操作的相关方法,如填充、复制、转换等。 - **ClassUtils**:提供类和类名的操作,包括加载、比较、转换等。 - **StringUtils**:强大的字符串操作工具,包括格式化、分割、拼接、...

    jakarta commons cookbook.zip

    总之,《Jakarta Commons Cookbook》是Java开发者必备的参考书之一,它以实例的形式详细介绍了Jakarta Commons各个组件的使用,对于提升开发效率和代码质量具有重要的意义。如果你在实际工作中遇到与文件操作、对象...

    org.apache.commons.lang jar下载

    3. **数组处理**: `ArrayUtils` 类包含了大量的数组操作方法,如添加、删除、复制、填充、反转、比较等。对于多维数组也有相应的支持。 4. **日期和时间**: `DateUtils` 提供了日期和时间的处理功能,如格式化、...

    commons-lang-2.6.jar配套文档

    `ArrayUtils` 提供了对数组的扩展操作,包括添加、删除、转换等;`DateUtils` 则帮助我们更灵活地处理日期和时间。 接下来,`commons-lang-2.6-javadoc.jar` 文件是该库的JavaDoc文档,它是开发者的重要参考资料。...

    org.apache.commons

    `ArrayUtils` 可以进行数组的添加、删除、合并等操作。 3. **Collections**: Apache Commons Collections 提供了对 Java 集合框架的增强和补充,包括集合工厂、迭代器工具、集合转换等。例如,`ListUtils` 可以创建...

    commons-lang3-3.1.jar_2021.07.zip

    - **StringUtils**:这是Lang库中最常用的工具类之一,包含了字符串操作的各种方法,如拼接、分割、替换、检查空值等。 - **CharUtils**:处理字符的工具类,提供了字符转换和操作的功能。 - **DateUtils**:提供...

    commons-lang-2.6

    2. **ArrayUtils**: 用于处理数组的工具类,包括添加、删除、复制、转换数组等操作,弥补了Java原生数组操作的不足。 3. **BooleanUtils**: 提供了对布尔值的操作,如反转布尔值、比较布尔值等,简化了布尔逻辑的...

Global site tag (gtag.js) - Google Analytics