org.apache.commons包下好用的工具,你还没有get?

org.apache.commons 这个包下有很多好用的工具类方法,这是初入Java的小生所必须get的一个点,可以帮助我们快速解决很多小而繁琐的代码,提高代码质量。比如为避免一些空指针,让代码更严谨更安全,像一些常用的判空处理,这个包下提供了很全面的方法来帮助我们快速简单有效达到我们想要的结果。我们在平时的开发中应该多使用开源的工具类,简洁高效我们的代码。下面我就简单举例来说明:(详细内容同学请自行了解)

  • org.apache.commons.collections.CollectionUtils

CollectionUtils在真实项目中,是一个非常好用的工具类,使用非常频繁。它可以使代码更加简洁和安全。刚好在工作中利用这个工具类重构代码,顺便总结下分享分享:

并集

@Test
public void testUnion(){
    String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };  
    String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
    List listA = Arrays.asList(arrayA);
    List listB = Arrays.asList(arrayB);
    //2个数组取并集 
    System.out.println(ArrayUtils.toString(CollectionUtils.union(listA, listB)));
    //[A, B, C, D, E, F, G, H, K]
}

交集

@Test
public void testIntersection(){
    String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };  
    String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
    List listA = Arrays.asList(arrayA);
    List listB = Arrays.asList(arrayB);
    //2个数组取交集 
    System.out.println(ArrayUtils.toString(CollectionUtils.intersection(listA, listB)));
    //[B, D, F]

}

交集的补集(析取)
@Test
public void testDisjunction(){
    String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };  
    String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
    List listA = Arrays.asList(arrayA);
    List listB = Arrays.asList(arrayB);
    //2个数组取交集 的补集
    System.out.println(ArrayUtils.toString(CollectionUtils.disjunction(listA, listB)));
    //[A, C, E, G, H, K]
}

差集(扣除)
@Test
public void testSubtract(){
    String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };  
    String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
    List listA = Arrays.asList(arrayA);
    List listB = Arrays.asList(arrayB);
    //arrayA扣除arrayB
    System.out.println(ArrayUtils.toString(CollectionUtils.subtract(listA, listB)));
    //[A, C, E]

}

集合是否为空
@Test
public void testIsEmpty(){
    List first = new ArrayList<>();
    List second = null;
    List boy = new ArrayList<>();
    //每个男孩心里都装着一个女孩
    boy.add(new Girl());
    //判断集合是否为空
    System.out.println(CollectionUtils.isEmpty(first));   //true
    System.out.println(CollectionUtils.isEmpty(second));   //true
    System.out.println(CollectionUtils.isEmpty(boy));   //false

    //判断集合是否不为空
    System.out.println(CollectionUtils.isNotEmpty(first));   //false
    System.out.println(CollectionUtils.isNotEmpty(second));   //false
    System.out.println(CollectionUtils.isNotEmpty(boy));   //true
}
  • org.apache.commons.collections.MapUtils

使用MapUtils.isEmpty方法和MapUtils.isNotEmpty方法对Map进行空判断。
boolean empty = MapUtils.isEmpty(map);
boolean notEmpty = MapUtils.isNotEmpty(map);

  • org.apache.commons.lang3.ArrayUtils

用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等;
1.数组判空
ArrayUtils.isEmpty(new String[]{""});//结果是false
ArrayUtils.isEmpty(new String[]{});//结果是true
String[] array = null
ArrayUtils.isEmpty(array);//结果是true

2.ArrayUtils.addAll 合并两个数组
String[] array1 =  new String[]{"0","1"};
String[] array2 = new new String[]{"2","3"};
String[] array3=(String[]) ArrayUtils.addAll(array1 ,array2 );//结果是:[0, 1, 2,3]

3.ArrayUtils.removeElement 删除数组中某个对象
String[] array=(String[]) ArrayUtils.removeElement(new String[]{"0","1x"}, "1x");
  • org.apache.commons.lang3.StringUtils

提供了一些对字符串处理的方法,请自行学习,下面简单举例:

isBlank:判断更严谨,包含的有空串("")、空白符(空格"","  ",制表符"\t",回车符"\r","\n"等)以及null值;

isEmpty:包含是空串("")和null值,不包含空白符;

isNotBlank和isNotEmpty都是取反的,不再赘述;
  • org.apache.commons.lang3.time.DateUtils

例:DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss")

有了这个工具你还用自己去写下面这么多代码去实现吗?是不是简单效率呢
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("当前时间:" + sdf.format(d));

 

你可能感兴趣的:(Java,Java技巧基础一)