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类的知识点详解 #### 一、ArrayUtils类简介 `ArrayUtils`类是Apache Commons Lang库中的一个重要工具类,主要用于处理数组的各种操作。相较于Java标准库中的数组操作,`ArrayUtils`...
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....
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....
- **ArrayUtils**:处理数组的各种操作,如添加、删除、复制、转换等。 - **ClassUtils**:帮助处理类和对象相关的任务,如获取类名、比较类等。 - **DateUtils**:提供日期和时间的处理函数,包括格式化、解析、...
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....
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...
例如,`ArrayUtils`可以方便地操作数组,添加、删除元素,甚至将数组转换为其他集合类型。`StringUtils`提供了大量的字符串操作方法,如拼接、替换、分割等,使得字符串处理更加简单高效。`BooleanUtils`则简化了对...
2. **ArrayUtils**:针对数组的操作,如添加、删除、复制、填充、转换和比较。 3. **BooleanUtils**:对布尔值进行逻辑操作,如取反、比较等。 4. **NumberUtils**:提供了数值相关的辅助方法,如格式化、转换等。...
2. **数组处理**:`ArrayUtils` 类提供了对数组的各种操作,如添加、删除、复制、比较和转换等。 3. **日期与时间**:`DateUtils` 提供了日期的格式化和解析,以及日期间的比较和计算。`DurationFormatUtils` 可以...
6. **数组操作**:`ArrayUtils`包含了数组的添加、删除、复制、转换等操作,使得操作数组更加便捷。 7. **系统属性**:`SystemUtils`提供了一系列关于Java运行环境的属性,如操作系统信息、Java版本等。 8. **异常...
Apache Commons是Java开发中不可或缺的一部分,它提供了一系列实用的工具类和组件,极大地丰富了Java标准库的功能。...因此,深入学习和理解Apache Commons工具集是每个Java开发者必备的技能之一。
Apache Commons 是一个由 Apache 软件基金会维护的开源项目集合,它提供了许多Java实用工具类,以增强Java标准库的功能。这些jar包是开发者在处理常见编程任务时的得力助手,涵盖范围广泛,包括数据结构、网络通信、...
例如 `StringUtils`、`ArrayUtils` 和 `ObjectUtils`。 2. **Commons IO**:针对输入/输出操作的实用工具,如文件复制、文件过滤、流操作等。例如 `FileUtils`、`IOUtils` 和 `EndianUtils`。 3. **Commons ...
- **ArrayUtils**:提供了数组操作的相关方法,如填充、复制、转换等。 - **ClassUtils**:提供类和类名的操作,包括加载、比较、转换等。 - **StringUtils**:强大的字符串操作工具,包括格式化、分割、拼接、...
总之,《Jakarta Commons Cookbook》是Java开发者必备的参考书之一,它以实例的形式详细介绍了Jakarta Commons各个组件的使用,对于提升开发效率和代码质量具有重要的意义。如果你在实际工作中遇到与文件操作、对象...
3. **数组处理**: `ArrayUtils` 类包含了大量的数组操作方法,如添加、删除、复制、填充、反转、比较等。对于多维数组也有相应的支持。 4. **日期和时间**: `DateUtils` 提供了日期和时间的处理功能,如格式化、...
`ArrayUtils` 提供了对数组的扩展操作,包括添加、删除、转换等;`DateUtils` 则帮助我们更灵活地处理日期和时间。 接下来,`commons-lang-2.6-javadoc.jar` 文件是该库的JavaDoc文档,它是开发者的重要参考资料。...
`ArrayUtils` 可以进行数组的添加、删除、合并等操作。 3. **Collections**: Apache Commons Collections 提供了对 Java 集合框架的增强和补充,包括集合工厂、迭代器工具、集合转换等。例如,`ListUtils` 可以创建...
- **StringUtils**:这是Lang库中最常用的工具类之一,包含了字符串操作的各种方法,如拼接、分割、替换、检查空值等。 - **CharUtils**:处理字符的工具类,提供了字符转换和操作的功能。 - **DateUtils**:提供...
2. **ArrayUtils**: 用于处理数组的工具类,包括添加、删除、复制、转换数组等操作,弥补了Java原生数组操作的不足。 3. **BooleanUtils**: 提供了对布尔值的操作,如反转布尔值、比较布尔值等,简化了布尔逻辑的...