百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

「Java工具类」Apache的ArrayUtils和CollectionUtils工具类

toyiye 2024-07-03 02:08 17 浏览 0 评论

介绍语

本号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会不断更新,欢迎码友关注点赞收藏转发!

望各位码友点击关注,冲1000粉。后面会录制一些视频教程,图文和视频结合,比如:图书介绍网站系统、抢购系统、大数据中台系统等。技术才是程序猿的最爱,码友们冲啊

如果码友觉得代码太长,可以从头到尾快速扫射一遍,了解大概即可。觉得有用后再转发收藏,以备不时之需。

正文:

Apache的ArrayUtils数组工具类和CollectionUtils集合工具类,两个工具类使用的相对比较少,和StringUtils字符串工具类就显得更少了。

  • ArrayUtils 数组工具类,使用的频率比较少,了解即可;
  • CollectionUtils 集合工具类,使用的频率比较少,了解即可;集合工具类在spring中也有。

ArrayUtils使用例子

 import org.apache.commons.lang3.ArrayUtils;
 
 import java.util.Map;
 
 public class ArrayUtilsTest {
 
     public static void main(String[] args) {
         String[] array = {"Hello", "BCD", "Java"};
         String[] newArray = ArrayUtils.add(array, "ABc");
         System.out.println(ArrayUtils.toString(newArray));
         // newArray = {Hello,BCD,Java,ABc}
         ArrayUtils.reverse(newArray);
         // newArray = {ABc,Java,BCD,Hello}
         System.out.println(ArrayUtils.indexOf(newArray, "BCD"));
         // 2
         newArray = ArrayUtils.insert(2, newArray, "ABc");
         // newArray = {ABc,Java,ABc,BCD,Hello}
         System.out.println(ArrayUtils.lastIndexOf(newArray, "ABc"));
         // 2
         String[] subarray = ArrayUtils.subarray(newArray, 1, 3);
         // subarray = {Java,ABc}
 
         System.out.println(ArrayUtils.isSorted(newArray));
         // false
         System.out.println(ArrayUtils.isSameLength(array, newArray));
         // false
         System.out.println(ArrayUtils.isSameType(array, newArray));
         // true
 
         String[] remove = ArrayUtils.remove(newArray, 2);
         // {ABc,Java,BCD,Hello}
         remove = ArrayUtils.removeElement(remove, "BCD");
         // {ABc,Java,Hello}
         remove = ArrayUtils.removeElements(remove, "ABc");
         // {Java,Hello}
 
         Object[] ints = {2, 1, 5, 8, 4, 6, 9};
         String[] stringArray = ArrayUtils.toStringArray(ints);
         System.out.println(ArrayUtils.toString(stringArray));
         // stringArray = {2,1,5,8,4,6,9}
 
         String[][] ss = {{"name", "zhang"},{"age", "12"}};
         Map<Object, Object> m = ArrayUtils.toMap(ss);
         // m = {name=zhang, age=12}
     }
 }
 

CollectionUtils使用例子

 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ArrayUtils;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
 public class CollectionUtilsTest {
 
     public static void main(String[] args) {
         List<String> listA = new ArrayList<>();
         System.out.println(CollectionUtils.isEmpty(listA));
         // true
         System.out.println(CollectionUtils.isNotEmpty(listA));
         // false
 
         listA.add("aa");
         List<String> listB = new ArrayList<>();
         CollectionUtils.addIgnoreNull(listB, null);
         System.out.println(ArrayUtils.toString(listB));
         // []
 
         CollectionUtils.addIgnoreNull(listB, "bb");
         CollectionUtils.addAll(listB, listA);
         System.out.println(ArrayUtils.toString(listB));
         // [bb, aa]
 
         // 差集,在B中找出A没有的元素
         Collection<String> subtract1 = CollectionUtils.subtract(listB, listA);
         System.out.println(ArrayUtils.toString(subtract1));
         // [bb]
 
         // 差集,在A中找出B没有的元素
         Collection<String> subtract2 = CollectionUtils.subtract(listA, listB);
         System.out.println(ArrayUtils.toString(subtract2));
         // []
 
         // 并集,合并A、B的元素,去掉重复的元素
         Collection<String> union = CollectionUtils.union(listA, listB);
         System.out.println(ArrayUtils.toString(union));
         // [aa, bb]
 
         // 交集,找出A、B的共同的元素
         Collection<String> intersection = CollectionUtils.intersection(listA, listB);
         System.out.println(ArrayUtils.toString(intersection));
         // [aa]
 
         // 移除B中有的A元素
         Collection<String> c1 = CollectionUtils.removeAll(listB, listA);
         System.out.println(ArrayUtils.toString(c1));
         // [bb]
 
         // 计算集合中元素出现的次数
         CollectionUtils.addIgnoreNull(listB, "bb");
         Map<String, Integer> m = CollectionUtils.getCardinalityMap(listB);
         System.out.println(m);
         // {bb=2, aa=1}
     }
 }

工具类源码:

直接引入工具类的jar包即可

 <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
   <version>3.9</version>
 </dependency>
 <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-collections4</artifactId>
   <version>4.4</version>
 </dependency>

类似工具类org.springframework.util.CollectionUtils,这个工具类用的可能还多点,不过还是要看项目的情况。建议可以看下这个工具类。

 <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-core</artifactId>
   <version>5.3.6</version>
 </dependency>

字符串处理工具类,数组集合工具类,这些经典的工具类其实在很多常见的框架中都有的,同学们要善于发现。

鄙人编码十年多,在项目中也积累了一些工具类,很多工具类在每个项目都有在用,很实用。大部分是鄙人封装的,有些工具类是同事封装的,有些工具类已经不记得是ctrl+c的还是自己封装的了,现在有空就会总结项目中大部分的工具类,分享给各位码友。如果文章中涉及的代码有侵权行为请通知鄙人处理。

计划是先把工具类整理出来,正所谓工欲善其事,必先利其器。项目中不管是普通单体项目还是多模块maven项目或是分布式微服务,一部分功能模块都是可以重用的,工具类模块就是其中之一。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码