Java 中节省 90% 时间的常用的工具类,2021Java开发学习路线


Fri Jul 16 00:00:00 CST 2021

false

2021-07-12

2021-07-13

2021-07-14

2021-07-15

2021-07-16

2021-07-17

2021-07-18



Process finished with exit code 0 

[](

)返回多个字段

有时候在一个方法中需要返回多个值的时候,经常会使用 HashMap 返回或者是 JSON 返回。Lang3 下已经帮我们提供了这样的工具类,不需要再多写 HashMap 和 JSON 了。


public static void main(String[] args) {



    MutablePair<Integer, String> mutablePair = MutablePair.of(2, "这是两个值");

    System.out.println(mutablePair.getLeft() + "  " + mutablePair.getRight());



    MutableTriple<Integer, String, Date> mutableTriple = MutableTriple.of(2, "这是三个值", new Date());

    System.out.println(mutableTriple.getLeft() + " " + mutableTriple.getMiddle() + " " + mutableTriple.getRight());

} 

输出结果:


2  这是两个值

2 这是三个值 Fri Jul 16 15:24:40 CST 2021



Process finished with exit code 0 

[](

)ArrayUtils 数组操作

ArrayUtils 是专门处理数组的类,可以让方便的处理数组而不是需要各种循环操作。


public static void main(String[] args) {



    //合并数组

    String[] array1 = new String[]{"value1", "value2"};

    String[] array2 = new String[]{"value3", "value4"};

    String[] array3 = ArrayUtils.addAll(array1, array2);

    System.out.println("array3:"+ArrayUtils.toString(array3));



    //clone 数组

    String[] array4 = ArrayUtils.clone(array3);

    System.out.println("array4:"+ArrayUtils.toString(array4));



    //数组是否相同

    boolean b = EqualsBuilder.reflectionEquals(array3, array4);

    System.out.println(b);



    //反转数组

    ArrayUtils.reverse(array4);

    System.out.println("array4反转后:"+ArrayUtils.toString(array4));



    //二维数组转 map

    Map<String, String> arrayMap = (HashMap) ArrayUtils.toMap(new String[][]{

        {"key1", "value1"}, {"key2", "value2"}

    });

    for (String s : arrayMap.keySet()) {

        System.out.println(arrayMap.get(s));

    }

} 

输出结果:


array3:{value1,value2,value3,value4}

array4:{value1,value2,value3,value4}

true

array4反转后:{value4,value3,value2,value1}

value1

value2



Process finished with exit code 0 

[](

)EnumUtils 枚举操作

  • getEnum(Class enumClass, String enumName) 通过类返回一个枚举,可能返回空;

  • getEnumList(Class enumClass) 通过类返回一个枚举集合;

  • getEnumMap(Class enumClass) 通过类返回一个枚举map;

  • isValidEnum(Class enumClass, String enumName) 验证enumName是否在枚举中,返回true或false。


public enum ImagesTypeEnum {

    JPG,JPEG,PNG,GIF;

} 

public static void main(String[] args) {

    ImagesTypeEnum imagesTypeEnum = EnumUtils.getEnum(ImagesTypeEnum.class, "JPG");

    System.out.println("imagesTypeEnum = " + imagesTypeEnum);

    System.out.println("--------------");

    List<ImagesTypeEnum> imagesTypeEnumList = EnumUtils.getEnumList(ImagesTypeEnum.class);

    imagesTypeEnumList.stream().forEach(

            imagesTypeEnum1 -> System.out.println("imagesTypeEnum1 = " + imagesTypeEnum1)

    );

    System.out.println("--------------");

    Map<String, ImagesTypeEnum> imagesTypeEnumMap = EnumUtils.getEnumMap(ImagesTypeEnum.class);

    imagesTypeEnumMap.forEach((k, v) -> System.out.println("key:" + k + ",value:" + v));

    System.out.println("-------------");

    boolean result = EnumUtils.isValidEnum(ImagesTypeEnum.class, "JPG");

    System.out.println("result = " + result);

    boolean result1 = EnumUtils.isValidEnum(ImagesTypeEnum.class, null);

    System.out.println("result1 = " + result1);

} 



输出结果:



imagesTypeEnum = JPG


imagesTypeEnum1 = JPG

imagesTypeEnum1 = JPEG

imagesTypeEnum1 = PNG

imagesTypeEnum1 = GIF


key:JPG,value:JPG

key:JPEG,value:JPEG

key:PNG,value:PNG

key:GIF,value:GIF


result = true

result1 = false

Process finished with exit code 0




### [](

)collections4 集合操作



commons-collections4 增强了 Java 集合框架,提供了一系列简单的 API 方便操作集合。



maven 依赖



<groupId>org.apache.commons</groupId>  

<artifactId>commons-collections4</artifactId>  

<version>4.4</version>  



#### [](

)CollectionUtils 工具类



这是一个工具类,可以检查 null 元素不被加入集合,合并列表,过滤列表,两个列表的并集、差集、合集。有部分功能在 Java 8 中可以被 Stream API 替换。



public static void main(String[] args) {

//null 元素不能加进去

List<String> arrayList1 = new ArrayList<>();

arrayList1.add("a");

CollectionUtils.addIgnoreNull(arrayList1, null);

System.out.println(arrayList1.size());



//排好序的集合,合并后还是排序的

List<String> arrayList2 = new ArrayList<>();

arrayList2.add("a");

arrayList2.add("b");



List<String> arrayList3 = new ArrayList<>();

arrayList3.add("c");

arrayList3.add("d");

System.out.println("arrayList3:" + arrayList3);



List<String> arrayList4 = CollectionUtils.collate(arrayList2, arrayList3);

System.out.println("arrayList4:" + arrayList4);



//交集

Collection<String> strings = CollectionUtils.retainAll(arrayList4, arrayList3);

System.out.println("arrayList3和arrayList4的交集:" + strings);



//并集

Collection<String> union = CollectionUtils.union(arrayList4, arrayList3);

System.out.println("arrayList3和arrayList4的并集:" + union);



//差集

Collection<String> subtract = CollectionUtils.subtract(arrayList4, arrayList3);

System.out.println("arrayList3和arrayList4的差集:" + subtract);



// 过滤,只保留 b

CollectionUtils.filter(arrayList4, s -> s.equals("b"));

System.out.println(arrayList4);

}




输出结果:



1

arrayList3:[c, d]

arrayList4:[a, b, c, d]

arrayList3和arrayList4的交集:[c, d]

arrayList3和arrayList4的并集:[a, b, c, d]

arrayList3和arrayList4的差集:[a, b]

[b]

Process finished with exit code 0




#### [](

)Bag 统计次数



用于统计值在集合中出现的次数。



public static void main(String[] args) {

Bag bag = new HashBag<String>();

bag.add("a");

bag.add("b");

bag.add("a");

bag.add("c", 3);

System.out.println(bag);

System.out.println(bag.getCount("c"));

}




输出结果:



[2:a,1:b,3:c]

3

Process finished with exit code 0




### [](

)beanutils Bean 操作



beanutils 是通过反射机制对 JavaBean 进行操作的。比如对 Bean 进行复制、map 转对象、对象转 Map。



maven 依赖



<groupId>commons-beanutils</groupId>

<artifactId>commons-beanutils</artifactId>

<version>1.9.4</version>

public class User {



    private String name;



    public String getName() {

        return name;

    }



    public void setName(String name) {

        this.name = name;

    }



} 

public static void main(String[] args) throws Exception {

User user1 = new User();

user1.setName("李四");

User user2 = (User) BeanUtils.cloneBean(user1);

System.out.println(user2.getName());



//User 转 map

Map<String, String> describe = BeanUtils.describe(user1);

System.out.println(describe);



//Map 转 User

Map<String, String> beanMap = new HashMap();

beanMap.put("name", "张三");

User user3 = new User();

BeanUtils.populate(user3, beanMap);

System.out.println(user3.getName());

}




输出结果:



李四

{name=李四}

张三

Process finished with exit code 0




[](

)Guava

------------------------------------------------------------------------



Google 开源的一个基于 Java 扩展项目,包含了一些基本工具、集合扩展、缓存、并发工具包、字符串处理等。



maven 依赖



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值