两个集合的并集 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最多的个数 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c, c],此结果中只保留了三个c
Params:
coll1 – 集合1
coll2 – 集合2
Type parameters:
<T> – 集合元素类型
Returns:
并集的集合,返回 ArrayList
public static <T> Collection<T> union(Collection<T> coll1, Collection<T> coll2);
两个集合的交集 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最少的个数 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] 结果:[a, b, c, c],此结果中只保留了两个c
Params:
coll1 – 集合1
coll2 – 集合2
Type parameters:
<T> – 集合元素类型
Returns:
交集的集合,返回 ArrayList
public static <T> Collection<T> intersection(Collection<T> coll1, Collection<T> coll2);
计算集合的单差集,即只返回【集合1】中有,但是【集合2】中没有的元素,例如:
subtract([1,2,3,4],[2,3,4,5]) -》 [1]
Params:
coll1 – 集合1
coll2 – 集合2
Type parameters:
<T> – 元素类型
Returns:
单差集
public static <T> Collection<T> subtract(Collection<T> coll1, Collection<T> coll2);
判断指定集合是否包含指定值,如果集合为空(null或者空),返回false,否则找到元素返回true
Params:
collection – 集合
value – 需要查找的值
Returns:
如果集合为空(null或者空),返回false,否则找到元素返回true
Throws:
ClassCastException – 如果类型不一致会抛出转换异常
NullPointerException – 当指定的元素 值为 null ,或集合类不支持null 时抛出该异常
- public static boolean contains(Collection<?> collection, Object value) {
- return isNotEmpty(collection) && collection.contains(value);
- }
集合1中是否包含集合2中所有的元素,即集合2是否为集合1的子集
Params:
coll1 – 集合1
coll2 – 集合2
Returns:
集合1中是否包含集合2中所有的元素
- public static boolean containsAll(Collection<?> coll1, Collection<?> coll2) {
- if (isEmpty(coll1)) {
- return isEmpty(coll2);
- }
-
- if (isEmpty(coll2)) {
- return true;
- }
-
- if (coll1.size() < coll2.size()) {
- return false;
- }
-
- for (Object object : coll2) {
- if (false == coll1.contains(object)) {
- return false;
- }
- }
- return true;
- }
行转列,合并相同的键,值合并为列表 将Map列表中相同key的值组成列表做为Map的value 是toMapList(Map)的逆方法 比如传入数据:
[
{a: 1, b: 1, c: 1}
{a: 2, b: 2}
{a: 3, b: 3}
{a: 4}
]
结果是:
{
a: [1,2,3,4]
b: [1,2,3,]
c: [1]
}
Params:
mapList – Map列表
Type parameters:
<K> – 键类型
<V> – 值类型
Returns:
Map
- public static <K, V> Map<K, List<V>> toListMap(Iterable<? extends Map<K, V>> mapList) {
- return MapUtil.toListMap(mapList);
- }
列转行。将Map中值列表分别按照其位置与key组成新的map。 是toListMap(Iterable)的逆方法 比如传入数据:
{
a: [1,2,3,4]
b: [1,2,3,]
c: [1]
}
结果是:
[
{a: 1, b: 1, c: 1}
{a: 2, b: 2}
{a: 3, b: 3}
{a: 4}
]
Params:
listMap – 列表Map
Type parameters:
<K> – 键类型
<V> – 值类型
Returns:
Map列表
- public static <K, V> List<Map<K, V>> toMapList(Map<K, ? extends Iterable<V>> listMap) {
- return MapUtil.toMapList(listMap);
- }