`

(转)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.0-bin.zip

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

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

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

    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 ...

    一个简单的开源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 ...

    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项目的主要目标是提供一系列高质量的实用工具类,这些类涵盖了字符串处理、日期和时间操作、...

    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