`

apache.commons.lang2.3学习笔记-ArrayUtils

 
阅读更多
public class Lang {

	class Bean {
		String name;

		public Bean(String name) {
			this.name = name;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		@Override
		public boolean equals(Object obj) {
			return ((Bean) obj).getName().equals(name);
		}

		@Override
		public String toString() {
			return super.toString() + "--" + name;
		}

	}

	class Bean2 extends Bean {

		public Bean2(String name) {
			super(name);
		}

	}

	public void testArrayUtils() {
		/** add:给数组添加元素,无需考虑长度限制 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//(数组,元素)在数组最后添加新的元素
		//		array = ArrayUtils.add(array, 5);
		//(数组,索引,元素)在指定索引添加新的元素
		//		array = ArrayUtils.add(array, 1, 5);
		/** addAll:将第二个数组合并到前一个数组 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//		Object[] array2 = new Integer[2];
		//		array2[0] = 6;
		//		array2[1] = 7;
		//(数组1,数组2)在数组后拼接第二个数组
		//		array = ArrayUtils.addAll(array, array2);
		/** clone:浅克隆数组 */
		//		Object[] array = new Bean[2];
		//		array[0] = new Bean("bean1");
		//		array[1] = new Bean("bean2");
		//(源数组)浅克隆数组,返回一个新的数组对象,元素对象与源数组为同一对象
		//		Object[] array3 = ArrayUtils.clone(array);
		//		System.err.println(array + "--" + array3);
		//		System.err.println(Arrays.asList(array) + "--" + Arrays.asList(array3));
		/** constains:数组是否包含元素 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//(数组,元素)是否包含相同元素,基础元素匹配值,
		//封装对象调用对象的equals方法匹配
		//		boolean b = ArrayUtils.contains(array, 1);
		//		System.err.println(b);
		/** getLength:获取数组的长度 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//(数组)获取长度,若数组元素为填满数组,
		//返回创建数组指定长度,若超出则返回实际长度
		//		int len = ArrayUtils.getLength(array);
		//		System.err.println(len);
		/** hashCode:返回数组的哈希码并转化为整数 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//		int hc = ArrayUtils.hashCode(array);
		//		System.err.println(hc);
		/** indexOf:返回指定元素在数组中得索引 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//(数组,元素)指定元素所在数组索引,没有则返回-1;
		//基础元素匹配值,封装对象调用对象的equals方法匹配
		//		int index = ArrayUtils.indexOf(array, 1);
		//(数组,元素,起始查找索引)从起始索引查找指定元素所在数组索引,
		//没有则返回-1;基础元素匹配值,封装对象调用对象的equals方法匹配
		//		int index = ArrayUtils.indexOf(array, 1, 1);
		//		double[] array4 = new double[] { 1.12, 2.213333 };
		//(double数组,double元素,double容差)
		//在double数组中查找给定的double值,
		//被查找的值与给定的值之间的差小于给定的容差
		//		int index = ArrayUtils.indexOf(array4, 2.1, 0.2);
		//(double数组,double元素,起始索引,double容差)
		//在double数组中从起始索引开始查找给定的double值,
		//被查找的值与给定的值之间的差小于给定的容差
		//		int index = ArrayUtils.indexOf(array4, 1.2, 1, 0.2);
		//		System.err.println(index);
		/** isEmpty:验证数组是否为空 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//(数组)当且仅当数组未指定长度或数组指定长度为0且未添加元素时返回true
		//		boolean b = ArrayUtils.isEmpty(array);
		//		System.err.println(b);
		/** isEquals:验证两个数组所有元素是否相同且一一对应 */
		//		Object[] array = new Bean[2];
		//		array[0] = new Bean("bean1");
		//		array[1] = new Bean("bean2");
		//		Object[] array2 = new Bean[2];
		//		array2[0] = new Bean("bean1");
		//		array2[1] = new Bean("bean2");
		//(数组1,数组2)验证两个数组元素是否一一对应,基础元素匹配值,
		//封装对象调用对象的equals方法匹配
		//		boolean b = ArrayUtils.isEquals(array, array2);
		//		System.err.println(b);
		/** isSameLength:验证两个数组是否长度相同 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//		Object[] array2 = new Integer[2];
		//		array2[0] = 6;
		//		array2[1] = 7;
		//(数组1,数组2)分别调用getLength()方法获取两个数组的长度后匹配,
		//验证长度规则等同getLength()方法
		//		boolean b = ArrayUtils.isSameLength(array, array2);
		//		System.err.println(b);
		/** isSameType:验证两个数组是否为相同类型 */
		//		Object[] array = new Bean[2];
		//		array[0] = new Bean("bean1");
		//		array[1] = new Bean("bean2");
		//		Object[] array2 = new Bean[2];
		//		array2[0] = new Bean2("bean1");
		//		array2[1] = new Bean2("bean2");
		//(数组1,数组2)验证两个数组是否为相同类型对象,
		//若数组的创建及使用为多态,按父对象类型匹配
		//		boolean b = ArrayUtils.isSameType(array, array2);
		//		System.err.println(b);
		/** lastIndexOf:查找数组中最后一个匹配给定元素的索引 */
		//		Object[] array = new Integer[3];
		//		array[0] = 1;
		//		array[1] = 2;
		//		array[2] = 1;
		//(数组,元素)指定元素所在数组的最后一个索引,没有则返回-1;
		//基础元素匹配值,封装对象调用对象的equals方法匹配
		//		int index = ArrayUtils.lastIndexOf(array, 3);
		//		//重载及调用规则参照indexOf()
		//		System.err.println(index);
		/** remove:根据索引移除指定元素 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//		array = ArrayUtils.add(array, 3);
		//		System.err.println(Arrays.asList(array));
		//(数组,索引)返回新的数组对象,由源数组移除指定索引元素后后面的元素向前补位构造的数组,
		//当给定的索引超出数组的长度时抛出java.lang.IndexOutOfBoundsException
		//		Object[] array2 = ArrayUtils.remove(array, 2);
		//		System.err.println(array + "--" + array2);
		//		System.err.println(Arrays.asList(array) + "--" + Arrays.asList(array2));
		/** removeElement:根据元素移除元素 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//(数组,元素)返回新的数组对象,有源数组移除指定元素后后面的元素向前补位构造的数组,
		//基础元素匹配值,封装对象调用对象的equals方法匹配
		//		Object[] array2 = ArrayUtils.removeElement(array, 3);
		//		Object[] array = new Bean[2];
		//		array[0] = new Bean("bean1");
		//		array[1] = new Bean("bean2");
		//		Object[] array2 = ArrayUtils.removeElement(array, new Bean("bean1"));
		//		System.err.println(array + "--" + array2);
		//		System.err.println(Arrays.asList(array) + "--" + Arrays.asList(array2));
		/** reverse:将数组按索引倒序排列 */
		//		Object[] array = new Integer[2];
		//		array[0] = 1;
		//		array[1] = 2;
		//		System.err.println(array);
		//		System.err.println(Arrays.asList(array));
		//(数组)返回数组本身,将数组元素按索引倒序排列
		//		ArrayUtils.reverse(array);
		//		System.err.println(array);
		//		System.err.println(Arrays.asList(array));
		/** subarray:从数组中按指定索引截取一个新的数组 */
		//		Object[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
		//(数组,起始索引,结束索引)返回一个新的数组,其元素按索引区间从源数组截取,
		//若起始索引小于0则从0开始截取,若结束索引大于源数组长度则截取到源数组最后一个元素,
		//若索引区间不在源数组中,则返回一个空的数组
		//		Object[] array2 = ArrayUtils.subarray(array, 12, 15);
		//		System.err.println(array + "--" + array2);
		//		System.err.println(Arrays.asList(array) + "--" + Arrays.asList(array2));
		/** toMap:将二维数组转化为Map */
		//		Object[][] array = new Object[2][2];
		//		array[0] = new Object[] { "key1", "value1", "aaa" };
		//		array[1] = new Object[] { "key2", "value2" };
		//(二维数组)取第二维数组元素1当键,取第二维数组元素2当值构成每个Map的元素
		//		Map map = ArrayUtils.toMap(array);
		//		System.err.println(map);
		/** toObject:将基础元素数组装配成高级数据对象数组 */
		//		int[] array = { 1, 2, 3, 4, 5 };
		//(基础数据数组)返回一个新的数组对象,其类型为给定基础数据的高级数据对象,
		//其元素的值对应为为给定数组的基础数据的值
		//		Integer[] array2 = ArrayUtils.toObject(array);
		//		System.err.println(array + "--" + array2);
		//		System.err.println(Arrays.asList(array) + "--" + Arrays.asList(array2));
		/** toPrimitive:将高级数据对象数组卸载为原始数据数组 */
		//		Integer[] array = { 1, 2, 3, 4, 5 };
		//(高级数据对象数组)返回一个新的数组对象,其类型为给定高级数据对象的原始数据,
		//其元素的值对应为给定数组的高级数据对象的值
		//		int[] array2 = ArrayUtils.toPrimitive(array);
		//		System.err.println(array + "--" + array2);
		//		System.err.println(Arrays.asList(array) + "--" + Arrays.asList(array2));
		/** toString:将数组对象输出为可读字符串 */
		//		int[] array = { 1, 2, 3, 4, 5 };
		//		Object[] array = new Bean[2];
		//		array[0] = new Bean("bean1");
		//		array[1] = new Bean("bean2");
		//(数组)循环数组元素后构造可读字符串返回,基础元素输出值,
		//封装对象调用toString()方法获取输出
		//		String string = ArrayUtils.toString(array);
		////(数组,当数组为null时返回的字符串)若数组为null,则返回第二个参数
		//		String string = ArrayUtils.toString(array, "__");
		//		System.err.println(string);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new Lang().testArrayUtils();
	}

}
0
2
分享到:
评论

相关推荐

    Jakarta Commons笔记

    - **org.apache.commons.lang**:核心实用工具类集合,如`StringUtils`、`ArrayUtils`等。 - **org.apache.commons.lang.builder**:提供了一系列用于构建`toString()`、`hashCode()`、`equals()`等方法的工具类。 -...

    Jakarta Commons CookBook学习笔记

    ### Jakarta Commons CookBook 学习笔记 #### 一、Commons Lang: EqualsBuilder and HashCodeBuilder **1.1 概述** `EqualsBuilder` 和 `HashCodeBuilder` 是 Apache Commons Lang 包中提供的两个工具类,用于...

    velocity学习笔记与struts2整合

    4. commons-lang-2.1.jar - 常用的Java语言工具包。 5. velocity-1.5.jar - Velocity核心库。 6. velocity-tools-1.4.jar - 提供Velocity的工具支持。 7. velocity-tools-view-1.4.jar - 用于视图处理的工具包。 8. ...

    Jakarta Commons cookbook.chm与中文版的笔记

    《Jakarta Commons Cookbook》是Java开发者的一本重要参考资料,它主要涵盖了Apache Jakarta Commons项目中的各种组件和工具的使用方法。Apache Commons是Java开发中的一个关键部分,提供了许多实用且功能强大的类库...

    struts2综合笔记

    - `commons-lang-2.5.jar`: Java 语言包增强。 - 可参考 `struts-2.3.15.3-all\struts-2.3.15.3\apps\struts2-blank\WEB-INF\lib` 中的 Jar 包。 2. **配置核心过滤器**: - 在 `web.xml` 中添加 Struts2 核心...

    struts2学习笔记

    在深入探讨Struts2的学习笔记之前,先来理解它的核心概念。 **1. Struts2依赖的JAR包** Struts2的运行离不开一系列的依赖库,包括: - `struts2-core-2.1.6.jar`:这是Struts2的核心库,包含了Struts2框架的主要...

    Struts学习笔记

    ### Struts学习笔记 #### 一、Struts2框架简介 Struts2是一个开源的、用于开发Java EE Web应用程序的MVC框架。它基于Struts 1进行了改进,提供了更加强大和灵活的功能,比如拦截器、动态方法调用、类型转换等。...

    CXF webservice初学笔记

    6. **Commons Lang** (commons-lang-2.5.jar):Apache Commons Lang 是一个实用工具类库,补充了 Java 核心库中的语言特性,包括字符串处理、日期和时间操作等。 7. **Commons Pool** (commons-pool-1.5.5.jar):...

    黑马程序员_struts2框架2016版视频_struts2_day01笔记

    课程中使用的是**struts-2.3.15.3-all.zip**版本的学习资料。其中包含了一些关键的组成部分: - **apps**:提供了示例应用程序,方便快速导入所需的jar包和配置文件。 - **lib**:包含了开发Struts2所需的所有jar包...

    java内部学习笔记.docx

    3. StringUtils类:Apache Commons Lang提供的字符串操作工具类。 4. StringBuilder类:可变的字符序列,效率高于String。 5. 正则表达式:用于模式匹配和字符串操作。 6. Date类:表示特定的瞬间,精确到毫秒。 7. ...

    BeanUtils工具 .jar 包

    在"java学习笔记——javaweb之BeanUtils、EL、JSTL"这篇博客中,作者可能详细讲解了如何在Java Web开发中利用BeanUtils进行数据绑定,以及与EL(Expression Language)和JSTL(JSP Standard Tag Library)的集成。...

    [Jakarta Commons笔记]

    【Jakarta Commons笔记】 Jakarta Commons是Apache软件基金会的一个项目集合,它提供了许多Java开发中常用的工具类和组件。这个项目旨在减少重复的工作,通过共享和重用代码,提高开发效率。Jakarta Commons包含了...

    Struts2自学笔记——Struts2的文件上传

    同时,Action类中需要定义一个或多个字段来接收上传的文件,这些字段通常使用`java.io.File`、`java.lang.String`或`org.apache.struts2.dispatcher.multipart.FileItem`类型。 4. **表单标签** 在JSP页面中,使用...

    JDBC学习笔记.docx

    在使用Apache Commons Lang或其他类似的库时,可能会遇到缺少包的问题。这时需要下载相应库的jar文件,将其添加到项目Build Path中,以解决报错。 **10. JUnit测试** 进行单元测试时,可以利用JUnit创建测试类,...

    java-learning-notes

    java学习笔记的测试代码 Apache commons Lang 加强java.lang的核心api,提供一些操纵String,数值的方法,反射,并发,创建对象和序列化和系统参数。还有有一些额外的工具帮助构造hashCode,toString,equals这样的...

    ssh笔记及jar包

    最后,`ssh_lib`可能是一个包含SSH框架所需库文件的目录,其中包括了Struts、Spring、Hibernate以及其他可能的依赖库,如log4j用于日志记录,commons-lang、commons-beanutils等Apache Commons库用于辅助开发。...

    Mayfly-开源

    3. `commons-lang-2.1.jar`:Apache Commons Lang库,包含了大量用于操作和处理Java语言特性的工具方法。 4. `mayfly-0.3.jar`:这是Mayfly的主要库文件,包含了所有核心功能的实现。 5. `LICENSE-2.0.txt`:包含了...

    Android备忘录记事本,又加工了一下

    - **Apache Commons Lang**:提供了一些有用的字符串处理、数组操作和日期时间功能。 - **Apache Commons IO**:提供了文件和流操作的辅助方法。 4. **项目实践** 开发"SimpleNotePad"时,开发者需要实现以下...

    java开始面试的第42天.doc

    `StringUtils`是Apache Commons Lang库中的一个工具类,提供了多种字符串操作方法。在代码中,`rightPad()`方法用于在字符串的右侧填充空格,以确保输出的列对齐。例如,第35行的代码将"编号"居右对齐,并在其右侧...

    Android 备忘录源码.zip源码资源下载

    10. **Apache相关库**:标签中提到的"apache"可能指的是Apache Commons库,如 Commons Lang 或 Commons IO,它们提供了一些通用的实用工具类,简化开发工作,如字符串处理、文件操作等。 11. **版本控制**:源码...

Global site tag (gtag.js) - Google Analytics