美文网首页
commons-collection4

commons-collection4

作者: hemiao3000 | 来源:发表于2022-04-11 07:15 被阅读0次

对于集合的常见操作有:

# 操作
1 判空
2 批量添加元素
3 选中/选出某些元素
4 剃除某些元素
5 形变
6 比较

判空

CollectionUtils.isEmpty 方法用于判断集合是否为空。nullsize == 0 都是空。

CollectionUtils.isNotEmpty 方法的判断逻辑与 .isEmpty 方法相反。

批量添加元素

CollectionUtils.addAll 方法将 参数2 中的元素,添加至 参数1 中。如果 参数1 并未发生变化,则返回 false 。

选中/选出某些元素

CollectionUtils 工具类的 .select 方法用于循环遍历,查找,选出元素,所有符合条件的元素都将返回。<small>>原集合内容不变。</small>

// 结果:{2, 4, 6}。源集合不变。
CollectionUtils.select(list, item -> item % 2 == 0);

IterableUtils 工具类的 find 可以可以实现 循环,查找、选中的功能,不过它只会返回第一个满足条件的元素。

剃除某些元素

CollectionUtils.filter 方法的功能是循环遍历集合,查找符合条件的元素,将不符合条件的元素移除。

这个命名和功能与 guava 的 filter 方法区别很大。guava 中的 .filter 是纯查询功能,而 commons-collection4 兼具查询和移除功能,移除的还是不满足条件元素。

如果原集合中至少有 1 个元素被移除,则 filter 方法返回 true 。

伪代码如下:

// 结果:源集合将变为 {2, 4, 6}
CollectionUtils.filter({1,2,3,4,5,6,7}, item -> item % 2 == 0);

形变

形变<small>(transform)</small>是指以一个集合作为『素材』生成另一个集合。

例如,『手头』有一个 Student 的集合,现在需要获得一个包含所有这些 Student 的 Name 的集合。

当然,所生成/返回的集合中的元素,一定是与源集合有逻辑上的关系的。

CollectionUtils 中有 2 个静态方法可以进行循环形变,它们的区别在于是源集合发生变化,还是生成一个新集合:

  • transform:发生形变的是源集合。

  • collect:源集合内容不变,生成一个新集合 |

伪代码如下:

// 结果:{ 1, 2, 3, 4 }     不变,生成新集合
CollectionUtils.collect({1,2,3,4}, item -> ++item);

// 结果:{ 2, 3, 4, 5 }     源集合会发生变化
CollectionUtils.transform({1,2,3,4}, item -> ++item);

比较

isEqualCollection:判断两个集合是否相等。

相关文章

  • commons-collection4

    对于集合的常见操作有: #操作1判空2批量添加元素3选中/选出某些元素4剃除某些元素5形变6比较 判空 Colle...

网友评论

      本文标题:commons-collection4

      本文链接:https://www.haomeiwen.com/subject/gasbsrtx.html