`

(转)apache common中好用的arrayutils

 
阅读更多
apache common包中,有很好用的arrayutils,其中:
toString
将一个数组转换成String,用于打印数组
isEquals
判断两个数组是否相等,采用EqualsBuilder进行判断
toMap
将一个数组转换成Map,如果数组里是Entry则其Key与Value就是新Map的Key和Value,如果是Object[]则Object[0]为KeyObject[1]为Value
clone
拷贝数组
subarray
截取子数组
isSameLength
判断两个数组长度是否相等
getLength
获得数组的长度
isSameType
判段两个数组的类型是否相同
reverse
数组反转
indexOf
查询某个Object在数组中的位置,可以指定起始搜索位置
lastIndexOf
反向查询某个Object在数组中的位置,可以指定起始搜索位置
contains
查询某个Object是否在数组中
toObject
将基本数据类型转换成外包型数据
isEmpty
判断数组是否为空(null和length=0的时候都为空)
addAll
合并两个数组
add
添加一个数据到数组
remove
删除数组中某个位置上的数据
removeElement
删除数组中某个对象(从正序开始搜索,删除第一个)
eg:
        // 1.打印数组
        ArrayUtils.toString(new int[] { 1, 4, 2, 3 });// {1,4,2,3}
        ArrayUtils.toString(new Integer[] { 1, 4, 2, 3 });// {1,4,2,3}
        ArrayUtils.toString(null, "I'm nothing!");// I'm nothing!

        // 2.判断两个数组是否相等,采用EqualsBuilder进行判断
        // 只有当两个数组的数据类型,长度,数值顺序都相同的时候,该方法才会返回True
        // 2.1 两个数组完全相同
        ArrayUtils.isEquals(new int[] { 1, 2, 3 }, new int[] { 1, 2, 3 });// true
        // 2.2 数据类型以及长度相同,但各个Index上的数据不是一一对应
        ArrayUtils.isEquals(new int[] { 1, 3, 2 }, new int[] { 1, 2, 3 });// true
        // 2.3 数组的长度不一致
        ArrayUtils.isEquals(new int[] { 1, 2, 3, 3 }, new int[] { 1, 2, 3 });// false
        // 2.4 不同的数据类型
        ArrayUtils.isEquals(new int[] { 1, 2, 3 }, new long[] { 1, 2, 3 });// false
        ArrayUtils.isEquals(new Object[] { 1, 2, 3 }, new Object[] { 1, (long) 2, 3 });// false
        // 2.5 Null处理,如果输入的两个数组都为null时候则返回true
        ArrayUtils.isEquals(new int[] { 1, 2, 3 }, null);// false
        ArrayUtils.isEquals(null, null);// true

        // 3.将一个数组转换成Map
        // 如果数组里是Entry则其Key与Value就是新Map的Key和Value,如果是Object[]则Object[0]为KeyObject[1]为Value
        // 对于Object[]数组里的元素必须是instanceof Object[]或者Entry,即不支持基本数据类型数组
        // 如:ArrayUtils.toMap(new Object[]{new int[]{1,2},new int[]{3,4}})会出异常
        ArrayUtils.toMap(new Object[] { new Object[] { 1, 2 }, new Object[] { 3, 4 } });// {1=2,
        // 3=4}
        ArrayUtils.toMap(new Integer[][] { new Integer[] { 1, 2 }, new Integer[] { 3, 4 } });// {1=2,
        // 3=4}

        // 4.拷贝数组
        ArrayUtils.clone(new int[] { 3, 2, 4 });// {3,2,4}

        // 5.截取数组
        ArrayUtils.subarray(new int[] { 3, 4, 1, 5, 6 }, 2, 4);// {1,5}
        // 起始index为2(即第三个数据)结束index为4的数组
        ArrayUtils.subarray(new int[] { 3, 4, 1, 5, 6 }, 2, 10);// {1,5,6}
        // 如果endIndex大于数组的长度,则取beginIndex之后的所有数据

        // 6.判断两个数组的长度是否相等
        ArrayUtils.isSameLength(new Integer[] { 1, 3, 5 }, new Long[] { 2L, 8L, 10L });// true

        // 7.获得数组的长度
        ArrayUtils.getLength(new long[] { 1, 23, 3 });// 3

        // 8.判段两个数组的类型是否相同
        ArrayUtils.isSameType(new long[] { 1, 3 }, new long[] { 8, 5, 6 });// true
        ArrayUtils.isSameType(new int[] { 1, 3 }, new long[] { 8, 5, 6 });// false

        // 9.数组反转
        int[] array = new int[] { 1, 2, 5 };
        ArrayUtils.reverse(array);// {5,2,1}

        // 10.查询某个Object在数组中的位置,可以指定起始搜索位置,找不到返回-1
        // 10.1 从正序开始搜索,搜到就返回当前的index否则返回-1
        ArrayUtils.indexOf(new int[] { 1, 3, 6 }, 6);// 2
        ArrayUtils.indexOf(new int[] { 1, 3, 6 }, 2);// -1
        // 10.2 从逆序开始搜索,搜到就返回当前的index否则返回-1
        ArrayUtils.lastIndexOf(new int[] { 1, 3, 6 }, 6);// 2

        // 11.查询某个Object是否在数组中
        ArrayUtils.contains(new int[] { 3, 1, 2 }, 1);// true
        // 对于Object数据是调用该Object.equals方法进行判断
        ArrayUtils.contains(new Object[] { 3, 1, 2 }, 1L);// false

        // 12.基本数据类型数组与外包型数据类型数组互转
        ArrayUtils.toObject(new int[] { 1, 2 });// new Integer[]{Integer,Integer}
        ArrayUtils.toPrimitive(new Integer[] { new Integer(1), new Integer(2) });// new int[]{1,2}

        // 13.判断数组是否为空(null和length=0的时候都为空)
        ArrayUtils.isEmpty(new int[0]);// true
        ArrayUtils.isEmpty(new Object[] { null });// false

        // 14.合并两个数组
        ArrayUtils.addAll(new int[] { 1, 3, 5 }, new int[] { 2, 4 });// {1,3,5,2,4}

        // 15.添加一个数据到数组
        ArrayUtils.add(new int[] { 1, 3, 5 }, 4);// {1,3,5,4}

        // 16.删除数组中某个位置上的数据
        ArrayUtils.remove(new int[] { 1, 3, 5 }, 1);// {1,5}

        // 17.删除数组中某个对象(从正序开始搜索,删除第一个)
        ArrayUtils.removeElement(new int[] { 1, 3, 5 }, 3);// {1,5}
分享到:
评论

相关推荐

    apache common-lang

    下面将详细探讨Apache Commons Lang中的主要知识点。 1. **字符串处理**: - `StringUtils`:这个类提供了大量的静态方法用于字符串的处理,如空格处理、字符串拼接、格式化、查找替换、分割和连接等。 - `...

    common-lang3.jar

    `common-lang3.jar`是Apache Commons Lang项目的一部分,该项目由Apache软件基金会维护,旨在提供Java编程中的一系列通用功能。这个库的核心目标是弥补Java API的一些不足,为开发者提供更强大、更灵活的工具,以...

    java common-lang-commons-lang.jar

    在当今的Java开发环境中,有一个工具库是许多程序员在日常开发中依赖的,那就是Apache Commons Lang库。这个库提供了大量的辅助工具类和方法,使得Java编程变得更加便捷和高效。commons-lang.jar包是这个库的核心...

    commons-lang3-3.9-tar-压缩包.zip

    Apache Commons Lang是Apache软件基金会开发的一个Java类库,它提供了许多在Java标准库中未包含的实用工具类。"commons-lang3-3.9-tar"是一个压缩包,包含了Lang项目版本3.9的源码和相关文件。这个库特别受欢迎,...

    commons-lang3-3.0-bin.zip

    Apache Commons Lang 是一个 Java 类库,它为 Java SDK 增加了大量有用的实用工具类,弥补了标准库中的一些不足。"commons-lang3-3.0-bin.zip" 是 Apache Commons Lang 的第 3.0 版本的二进制分发包。这个压缩包包含...

    common-lang2.6,lang3-3.4包,源码

    Apache Commons Lang是Apache软件基金会的一个开源项目,旨在提供Java语言标准库中没有的、但在实际开发中非常实用的工具类。Lang库自2.0版本发布以来,经过不断的迭代升级,逐步完善并新增了许多功能,直到现在的...

    commons-lang3-3.9-bin.tar.gz

    标题中的"commons-lang3-3.9-bin.tar.gz"是一个软件包,它是Apache Commons Lang项目的版本3.9的二进制发行版,被打包成tar.gz格式,这是一种在Unix/Linux系统中常见的压缩方式。Apache Commons Lang是Java开发的一...

    apche最全commons包搭建项目必备

    在项目开发中,Apache Commons 的各种组件常常被用来处理常见的编程任务,如输入/输出(I/O)操作、文件上传、字符串处理等。下面将详细介绍这些组件以及它们在项目中的应用。 1. Apache Commons IO Apache Commons ...

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

    Apache Commons Lang是Java编程语言中的一个实用工具库,它提供了许多在标准Java API中未涵盖的高级字符串和对象处理功能。这个"commons-lang-2.4.rar"压缩包包含了两个子文件,分别是"commons-lang-2.4-bin.zip"和...

    commons-lang-2.6jar包

    Apache Commons Lang是Apache软件基金会开发的一个开源项目,旨在为Java开发提供一组不包含在JDK中的通用工具类。 Lang项目的主要目标是提供一系列高质量的实用工具类,这些类涵盖了字符串处理、日期和时间操作、...

    一个简单的开源Android工具类库

    ArrayUtils Array Unility Class AssetsUtils Assets Unility Class BASE64Utils Base64 Unility Class BitmapUtils Bitmap Unility Class BlurUtils Blur Unility Class ByteUtils Byte Unility Class ...

    struts 对应的API 及相应的扩展包org.common.lang.*等及对应的源代码

    Struts API和扩展包`org.common.lang.*`等在Struts应用中扮演着关键角色。 首先,让我们深入理解Struts的核心API: 1. **ActionServlet**:这是Struts框架的控制器组件,负责处理HTTP请求,根据配置信息(如struts...

    java项目commons jar包

    Java项目中的`commons`系列jar包是Apache软件基金会下的 Commons 项目提供的库,它们为Java开发者提供了各种实用工具和组件,极大地简化了常见的编程任务。这些jar包在Java开发中非常常见,尤其对于处理集合操作、...

    commons-lang-utils

    Apache Commons Lang是Java开发中的一个强大工具库,其中的Lang Utils模块提供了大量实用的工具类,极大地丰富了Java的标准类库。这篇内容将深入探讨Lang Utils模块的核心功能和常见应用场景,帮助开发者更好地理解...

    commons-lang

    "commons-lang"是Apache Commons项目中的一个核心组件,它的全称是Apache Commons Lang。这个库提供了许多对Java基本对象操作的增强和辅助方法,极大地扩展了Java标准库的功能。在Java开发中,它是一个非常实用的...

    commons-lang包资源

    Commons Lang是Apache软件基金会开发的一个Java工具包,它提供了对Java语言核心库的补充和扩展。这个包资源包含了丰富的函数式编程元素、字符串处理工具、日期时间操作、数学运算以及对象实用工具等,极大地丰富了...

    java 工具类 lang3 jar包

    java 工具类 lang3 jar包 StringUtils ArrayUtils SystemUtils

Global site tag (gtag.js) - Google Analytics