实现同样逻辑,代码量减少90%,这些Java工具库太强大了!

2023-05-28 0 673

实现同样逻辑,代码量减少90%,这些Java工具库太强大了!

组织工作许多年后,才辨认出有许多辅助工具C#,能普遍化标识符量,提高合作开发工作效率,最高级合作开发人员却不晓得。而那些C#早已正式成为了业内国际标准C#,大子公司的外部也都在采用,假如刚组织工作的这时候就没人说我采用那些辅助工具C#,该多好!

几块看呵呵有什么样辅助工具C#你也用过。

1. Java便携式辅助工具方式

List子集堆叠出以双引号隔开的数组

//怎样把list子集堆叠出以双引号隔开的数组 a,b,c

List list = Arrays.asList(“a”,”b”,”c”);

//第二种方式,能用stream流

String join = list.stream().collect(Collectors.joining(“,”));

System.out.println(join);//输入 a,b,c

//第三种方式,只不过String也有join方式能同时实现那个机能

String join = String.join(“,”, list);

较为三个数组与否成正比,忽视UTF

if (strA.equalsIgnoreCase(strB)){

System.out.println(“成正比”);

}

较为三个第一类与否成正比

当我们用equals较为三个第一类与否成正比的这时候,还需要对左边的第一类进行判空,不然可能会报空指针异常,我们能用java.util包下Objects封装好的较为与否成正比的方式

Objects.equals(strA, strB);

源码是这样的

public static boolean equals(Object a, Object b){

return (a == b)(a != null && a.equals(b));

三个List子集取交集

List list1= new ArrayList<>();

list1.add(“a”);

list1.add(“b”);

list1.add(“c”);

List list2= new ArrayList<>();

list2.add(“a”);

list2.add(“b”);

list2.add(“d”);

list1.retainAll(list2);

System.out.println(list1);//输入[a, b]

2. apache commons辅助工具C#

apache commons是最强大的,也是采用最广泛的辅助工具C#,里面的子库非常多,下面介绍几个最常用的

commons-lang,java.lang的增强版

建议采用commons-lang3,优化了一些api,原来的commons-lang已停止更新

Maven依赖是:

org.apache.commons

commons-lang3

3.12.0

数组判空

传参CharSequence类型是String、StringBuilder、StringBuffer的父类,都能直接下面方式判空,以下是源码:

public static boolean isEmpty(final CharSequence cs){

return cs == null cs.length()==0;

public static boolean isNotEmpty(final CharSequence cs){

return !isEmpty(cs);

//判空的这时候,会去除数组中的空白字符,比如空格、换行、制表符

public static boolean isBlank(final CharSequence cs){

final int strLen = length(cs);

if (strLen ==0){

return true;

}

for (int i =0; i < strLen; i++){

if (!Character.isWhitespace(cs.charAt(i))){

return false;

}

return true;

public static boolean isNotBlank(final CharSequence cs){

return !isBlank(cs);

首字母转成大写

String str =”yideng”;

String capitalize = StringUtils.capitalize(str);

System.out.println(capitalize);//输入Yideng

2.1.3重复堆叠数组

String str = StringUtils.repeat(“ab”,2);

System.out.println(str);//输入abab

2.1.4格式化日期

再也不用手写SimpleDateFormat格式化了

// Date类型转String类型

String date = DateFormatUtils.format(new Date(),”yyyy-MM-dd HH:mm:ss”);

System.out.println(date);//输入2021-05-0101:01:01

// String类型转Date类型

Date date = DateUtils.parseDate(“2021-05-0101:01:01″,”yyyy-MM-dd HH:mm:ss”);

//计算一个小时后的日期

Date date = DateUtils.addHours(new Date(),1);

2.1.5包装临时第一类

当一个方式需要返回三个及以上字段时,我们一般会封装成一个临时第一类返回,现在有了Pair和Triple就不需要了

//返回三个字段

ImmutablePair pair = ImmutablePair.of(1,”yideng”);

System.out.println(pair.getLeft()+ “,”+ pair.getRight());//输入1,yideng

//返回三个字段

ImmutableTriple triple = ImmutableTriple.of(1,”yideng”, new Date());

System.out.println(triple.getLeft()+ “,”+ triple.getMiddle()+ “,”+ triple.getRight());//输入1,yideng,Wed Apr 0723:30:00 CST 2021

2.2 commons-collections 子集辅助工具类

commons-collections4

4.4

2.2.1子集判空

封装了子集判空的方式,以下是源码:

public static boolean isEmpty(final Collection coll){

return coll == null coll.isEmpty();

public static boolean isNotEmpty(final Collection coll){

return !isEmpty(coll);

//三个子集取交集

Collection collection = CollectionUtils.retainAll(listA, listB);

//三个子集取并集

Collection collection = CollectionUtils.union(listA, listB);

//三个子集取差集

Collection collection = CollectionUtils.subtract(listA, listB);

2.3 common-beanutils 操作第一类

Maven依赖:

commons-beanutils

commons-beanutils

1.9.4

public class User {

private Integer id;

private String name;

设置第一类属性

User user = new User();

BeanUtils.setProperty(user,”id”,1);

BeanUtils.setProperty(user,”name”,”yideng”);

System.out.println(BeanUtils.getProperty(user,”name”));//输入 yideng

System.out.println(user);//输入{“id”:1,”name”:”yideng”}

第一类和map互转

//第一类转map

Map map = BeanUtils.describe(user);

System.out.println(map);//输入{“id”:”1″,”name”:”yideng”}

// map转第一类

User newUser = new User();

BeanUtils.populate(newUser, map);

System.out.println(newUser);//输入{“id”:1,”name”:”yideng”}

2.4 commons-io 文件流处理

commons-io

commons-io

2.8.0

文件处理

File file = new File(“demo1.txt”);

//读取文件

List lines = FileUtils.readLines(file, Charset.defaultCharset());

//写入文件

FileUtils.writeLines(new File(“demo2.txt”), lines);

//复制文件

FileUtils.copyFile(srcFile, destFile);

3. Google Guava 辅助工具C#

com.google.guava

guava

30.1.1-jre

3.1创建子集

List list = Lists.newArrayList();

List list = Lists.newArrayList(1,2,3);

//反转list

List reverse = Lists.reverse(list);

System.out.println(reverse);//输入[3,2,1]

// list子集元素太多,能分成若干个子集,每个子集10个元素

List

Map map = Maps.newHashMap();

Set set = Sets.newHashSet();

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务