package com.nihaorz.model;

/**
* @作者 王睿
* @时间 2016-5-17 上午10:05:17
*
*/
public class Person {
private String id;
private String name;
private Integer age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
} }
import java.util.Iterator;
import java.util.Map; import org.apache.commons.lang3.ArrayUtils;
import org.junit.Test; import com.nihaorz.model.Person; /**
* @作者 王睿
* @时间 2016-5-17 上午9:30:36 ArrayUtilsTest 使用 org.apache.commons.lang3.ArrayUtils
* 对象完成数组的打印、克隆、查找、删除、倒序、分割以及值型/对象数组集合之间的转换等常用操作
*/
public class ArrayUtilsTest { /**
* 测试类统一获取Person数组方法
* @return
*/
private Person[] getPP(){
Person p = new Person();
p.setId("1001");
p.setName("王睿");
p.setAge(27);
Person p1 = new Person();
p1.setId("1002");
p1.setName("钱青芝");
p1.setAge(27);
Person p2 = new Person();
p2.setId("1003");
p2.setName("王啸");
p2.setAge(30);
Person p3 = new Person();
p3.setId("1004");
p3.setName("胡曼琪");
p3.setAge(10);
Person[] pp = new Person[]{p,p1,p2,p3};
return pp;
} /**
* 测试类统一打印方法
* @param objs
*/
private void printArray(Object objs){
System.out.println(ArrayUtils.toString(objs));
} /**
* ArrayUtils.toString
* POJO对象数组直接toString
* 二维数组toString
*/
@Test
public void _toString(){
Person[] pp = getPP();
printArray(pp[0]);
printArray(pp);
int[][] intArray2 = { { 1, 2 }, { 2, 4 }, { 3, 8 }, { 4, 16 } };
printArray(intArray2);
Object[][] notAMap = { { "A", new Double(100) },
{ "B", new Double(80) }, { "C", new Double(60) },
{ "D", new Double(40) }, { "E", new Double(20) } };
printArray(notAMap);
} /**
* ArrayUtils.clone
* 数组对象克隆方法
*/
@Test
public void _clone(){
Person[] pp = getPP();
Person[] pp1 = ArrayUtils.clone(pp);
printArray(pp1);
} /**
* ArrayUtils.indexOf
* 返回元素在数组中第一次出现的位置,如果未找到或查询的参数是null即返回-1
*/
@Test
public void indexOf(){
double[] arr = {1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.90,4.56};
int result = ArrayUtils.indexOf(arr, 4.56);
System.out.println(result);
String[] arr2 = {"wangrui", "wangcheng", "钱青芝","钱青芝"};
System.out.println(ArrayUtils.indexOf(arr2, "钱青芝"));
} /**
* ArrayUtils.lastIndexOf
* 返回元素在数组中最后一次出现的位置,如果未找到或查询的参数是null即返回-1
*/
@Test
public void lastIndexOf(){
double[] arr = {1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.90,4.56};
int result = ArrayUtils.lastIndexOf(arr, 4.56);
System.out.println(result);
String[] arr2 = {"wangrui", "wangcheng", "钱青芝","钱青芝"};
System.out.println(ArrayUtils.lastIndexOf(arr2, "钱青芝"));
System.out.println(ArrayUtils.lastIndexOf(arr2, null));
} /**
* ArrayUtils.contains
* 指定数组中是否存在指定元素
*/
@Test
public void contains(){
double[] arr = {1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.90,4.56};
System.out.println(ArrayUtils.contains(arr, 6.78));
System.out.println(ArrayUtils.contains(arr, 6.77));
} /**
* ArrayUtils.remove
* 删除数组指定下标的元素返回新的数组对象
*/
@Test
public void remove(){
Person[] pp = getPP();
pp = ArrayUtils.remove(pp, 1);
printArray(pp);
} /**
* ArrayUtils.removeAll
* 批量删除数组指定下标的元素返回新的数组对象
*/
@Test
public void removeAll(){
Person[] pp = getPP();
pp = ArrayUtils.removeAll(pp, 1, 2);
printArray(pp);
} /**
* ArrayUtils.removeElement
* 删除数组指定元素(仅删除第一个)返回新的数组对象
*/
@Test
public void removeElement(){
Person p = new Person();
p.setId("1001");
p.setName("王睿");
p.setAge(27);
Person p1 = new Person();
p1.setId("1002");
p1.setName("钱青芝");
p1.setAge(27);
Person p2 = new Person();
p2.setId("1003");
p2.setName("王啸");
p2.setAge(30);
Person p3 = new Person();
p3.setId("1004");
p3.setName("胡曼琪");
p3.setAge(10);
Person[] pp = new Person[]{p,p,p,p1,p2,p3};
pp = ArrayUtils.removeElement(pp, p);
printArray(pp);
} /**
* ArrayUtils.removeElements
* 删除数组指定元素(传多个删多个)返回新的数组对象
*/
@Test
public void removeElements(){
Person p = new Person();
p.setId("1001");
p.setName("王睿");
p.setAge(27);
Person p1 = new Person();
p1.setId("1002");
p1.setName("钱青芝");
p1.setAge(27);
Person p2 = new Person();
p2.setId("1003");
p2.setName("王啸");
p2.setAge(30);
Person p3 = new Person();
p3.setId("1004");
p3.setName("胡曼琪");
p3.setAge(10);
Person[] pp = new Person[]{p,p,p,p1,p2,p3};
pp = ArrayUtils.removeElements(pp, p);
printArray(pp);
pp = new Person[]{p,p,p,p1,p2,p3};
pp = ArrayUtils.removeElements(pp, p, p);
printArray(pp); String[] strs = new String[]{"1", "1", "1", "2", "3", "4"};
strs = ArrayUtils.removeElements(strs, "1", "1");
printArray(strs);
} /**
* ArrayUtils.reverse
* 数组反转
*/
@Test
public void reverse(){
Person[] pp = getPP();
printArray(pp);
/**
* 数组整个直接反转
*/
ArrayUtils.reverse(pp);
printArray(pp);
/**
* 只反转第0到第2(不包含第2个元素)个元素
*/
ArrayUtils.reverse(pp, 0, 2);
printArray(pp);
} /**
* ArrayUtils.subarray
* 数组对象切割,返回新的数组对象
*/
@Test
public void subarray(){
Person[] pp = getPP();
printArray(pp);
pp = ArrayUtils.subarray(pp, 2, 3);
printArray(pp);
} /**
* ArrayUtils.toObject
* 将8种基本类型数组转换为包装类型数组
*/
@Test
public void toObject(){
int[] arr = new int[]{};
System.out.println(arr.getClass().getSimpleName());
System.out.println(ArrayUtils.toObject(arr).getClass().getSimpleName());
char[] arr1 = new char[]{};
System.out.println(arr1.getClass().getSimpleName());
System.out.println(ArrayUtils.toObject(arr1).getClass().getSimpleName());
double[] arr2 = new double[]{1.1,2.2,3.3,4.4};
Double[] arr3 = ArrayUtils.toObject(arr2);
printArray(arr3);
for (Double d : arr3) {
System.out.println(d.getClass().getSimpleName());
}
} /**
* ArrayUtils.toPrimitive
* 将8中包装类型数组转换为基本类型数组
*/
@Test
public void toPrimitive(){
Integer[] arr = new Integer[]{};
System.out.println(arr.getClass().getSimpleName());
System.out.println(ArrayUtils.toPrimitive(arr).getClass().getSimpleName());
Character[] arr1 = new Character[]{};
System.out.println(arr1.getClass().getSimpleName());
System.out.println(ArrayUtils.toPrimitive(arr1).getClass().getSimpleName());
Double[] arr2 = new Double[]{1.1,2.2,3.3,4.4};
/**
* 直接转换,不处理null值,出现null值即报空指针异常
*/
double[] arr3 = ArrayUtils.toPrimitive(arr2);
printArray(arr3);
arr2 = ArrayUtils.add(arr2, null);
/**
* 处理null值,如果遇到null值直接替换为0.123456
*/
printArray(ArrayUtils.toPrimitive(arr2, 0.123456));
/**
* 不处理null值,报空指针异常
*/
printArray(ArrayUtils.toPrimitive(arr2));
} /**
* ArrayUtils.toArray
* 将一组对象转换为数组
*/
@Test
public void toArray(){
String[] arr = ArrayUtils.toArray("112", "223", "445", "556");
printArray(arr);
} /**
* ArrayUtils.toMap
* 将二维数组转换为map对象
*/
@Test
public void toMap(){
String[] arr1 = ArrayUtils.toArray("112", "223", "445", "556");
String[] arr2 = ArrayUtils.toArray("556", "778", "889", "900");
String[][] arr3 = ArrayUtils.toArray(arr1, arr2);
Map map = ArrayUtils.toMap(arr3);
String[][] arr4 = new String[][] {{"RED", "#FF0000"},{"GREEN", "#00FF00"},{"BLUE", "#0000FF"}};
map = ArrayUtils.toMap(arr4);
Iterator it = map.keySet().iterator();
while(it.hasNext()) {
String key = (String) it.next();
System.out.println("key:" + key + ", value:" + map.get(key));
}
Object[][] notAMap = { { "A", new Double(100) },
{ "B", new Double(80) }, { "C", new Double(60) },
{ "D", new Double(40) }, { "E", new Double(20) } };
Map map1 = ArrayUtils.toMap(notAMap);
Double res = (Double) map1.get("C");
System.out.println("get 'C' from map1: " + res);
} }

  

org.apache.commons.lang3.ArrayUtils 学习笔记的更多相关文章

  1. org.apache.commons.io——FileUtils学习笔记

    FileUtils类的应用 1.写入一个文件: 2.从文件中读取: 3.创建一个文件夹,包括文件夹: 4.复制文件和文件夹: 5.删除文件和文件夹: 6.从URL地址中获取文件: 7.通过文件过滤器和 ...

  2. 【java】org.apache.commons.lang3功能示例

    org.apache.commons.lang3功能示例 package com.simple.test; import java.util.Date; import java.util.Iterat ...

  3. java commons.lang3 ArrayUtils使用

    java commons.lang3 ArrayUtils使用import org.apache.commons.lang3.ArrayUtils; /** *数组追加数组,不重复 */ public ...

  4. apache commons类库的学习

    原文地址http://www.tuicool.com/articles/iyEbquE 1.1. 开篇 在Java的世界,有很多(成千上万)开源的框架,有成功的,也有不那么成功的,有声名显赫的,也有默 ...

  5. Hadoop java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils

    .jar 学习好友推荐案例的时候,提交运行时报错找不到StringUtils java.lang.ClassNotFoundException: org.apache.commons.lang3.St ...

  6. spring异常记录-----java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

    今天在练习怎样SSH中进行单元測试的时候出现下列异常: SEVERE: Exception starting filter Struts2 java.lang.NoClassDefFoundError ...

  7. Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils

    1.错误叙述性说明 2014-7-10 23:12:23 org.apache.catalina.core.StandardContext filterStart 严重: Exception star ...

  8. org.apache.commons.lang3 的随机数生成

    apache org.apache.commons.lang3 的随机数生成工具,方便使用. String a12 = RandomStringUtils.random(4, "012345 ...

  9. org.apache.commons.lang3.tuple.Pair 作为更新参数,XML 中的 Sql 取不到值、报错

    项目用的 Mybatis,今天改一个需求,落地实现是批量更新,且只需要根据主键(id)来更新一个字段(name). 于是,没有犹豫,像下面这样设计了数据结构: 既然是批量更新,那外层肯定是 List ...

随机推荐

  1. AC日记——最长最短单词 openjudge 1.7 25

    25:最长最短单词 总时间限制:  1000ms 内存限制:  65536kB 描述 输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母.空格和逗号.单词由至少一个连续的字母构成 ...

  2. XBOX ONE游戏开发常见问题

    XBOX ONE游戏开发常见问题 终于弄懂这个在Unity的sdk在Account Picker切换账号的机制了,一个手柄注册一个账号,在游戏里面的时候,只有另外一个手柄选择自己的账号,系统的Acti ...

  3. 批处理文件指定jre路径启动java桌面应用程序

    应用场景: 我开发了一个应用程序,并连同jre一起刻成光盘,提供给用户,用户直接双击批处理文件即可运行,而不需要自己额外装jre. 目录组织结构如下: client |-images |-jre |- ...

  4. USB Type-C 接口有什么优点?

    USB Type-C 接口有什么优点? 提到USB Type-C接口(以下简称为USB-C),大家第一个能想到的是USB-C接口能正反插,用起来很舒服.了解更多的可能还支持USB-C接口速度更快, 达 ...

  5. ActiveMQ初体验

    首先介绍下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,说白了就是一个消息的接受和转发的容器,可用于消息推送. 下面介绍主题,就是今天为大家介绍的ActiveMQ ...

  6. ipone5 无法安装ipa软件

    iphone5s软件无法安装解决方法一,点击设置 - 通用 - 访问限制,先关闭“安装应用程序”选项,再打开,把后台应用程序刷新也关了,测试. iphone5s软件无法安装解决方法二,点击设置 - 通 ...

  7. C语言--scanf

    关于C语言的scanf,首先看个例子 int get_int(void){ int input; char ch; ){ printf("is not an integer,please e ...

  8. 个人PHP开发环境的选择与搭建

    入职一个多月,重新调整了一下自己电脑的开发环境,现在写出来,算是作为自己的笔记. 如果你是该文章的读者,请忍受文章内的所有小章节都没有具体的步骤. 因为平时还要打游戏(划掉),所以电脑系统一直是Win ...

  9. 交叉验证 Cross validation

    来源:CSDN: boat_lee 简单交叉验证 hold-out cross validation 从全部训练数据S中随机选择s个样例作为训练集training set,剩余的作为测试集testin ...

  10. mvc route的注册,激活,调用流程

    mvc route的注册,激活,调用流程(三) net core mvc route的注册,激活,调用流程 mvc的入口是route,当前请求的url匹配到合适的route之后,mvc根据route所 ...