一、集合 CollectionUtils
1.类
import org.springframework.util.CollectionUtils;
2.集合判断工具
// 判断 List/Set 是否为空
boolean isEmpty(Collection<?> collection)
// 判断 Map 是否为空
boolean isEmpty(Map<?,?> map)
// 判断 List/Set 中是否包含某个对象
boolean containsInstance(Collection<?> collection, Object element)
// 以迭代器的方式,判断 List/Set 中是否包含某个对象
boolean contains(Iterator<?> iterator, Object element)
// 判断 List/Set 是否包含某些对象中的任意一个
boolean containsAny(Collection<?> source, Collection<?> candidates)
// 判断 List/Set 中的每个元素是否唯一。即 List/Set 中不存在重复元素
boolean hasUniqueObject(Collection<?> collection)
测试:
List<String> list = Lists.newArrayList("1","2","3","3","5");
List<String> list1 = Lists.newArrayList("1","2");
List<String> list2 = Lists.newArrayList("1");
List<String> list6 = Lists.newArrayList("6","7");
Map<String,String> map = Maps.newHashMap();
// boolean isEmpty(Collection<?> collection) 判断 List/Set 是否为空
CollectionUtils.isEmpty(list);
// 输出:false
// boolean isEmpty(Map<?,?> map) 判断 Map 是否为空
CollectionUtils.isEmpty(map);
// 输出:true
// boolean containsInstance(Collection<?> collection, Object element) 判断 List/Set 中是否包含某个对象
CollectionUtils.containsInstance(list,"1");
// 输出:true
// boolean containsAny(Collection<?> source, Collection<?> candidates) 判断 List/Set 是否包含某些对象中的任意一个
CollectionUtils.containsAny(list,list1);
// 输出:true
CollectionUtils.containsAny(list,list6);
// 输出:false
// boolean hasUniqueObject(Collection<?> collection) 判断 List/Set 中的每个元素是否唯一。即 List/Set 中不存在重复元素
CollectionUtils.hasUniqueObject(list);
// 输出:false
CollectionUtils.hasUniqueObject(list2);
// 输出:false
3.集合操作工具
3.1.mergeArrayIntoCollection
- 将 Array 中的元素都添加到 List/Set 中
- 方法
<E> void mergeArrayIntoCollection(Object array, Collection<E> collection)
- 案例
String[] arr = {"1", "2"};
List<String> list = new ArrayList<String>() {{
add("A");
add("B");
add("C");
}};
CollectionUtils.mergeArrayIntoCollection(arr, list);
//输出:["A", "B", "C", "1", "2"]
3.2.mergePropertiesIntoMap
- 将 Properties 中的键值对都添加到 Map 中
- 方法
<K,V> void mergePropertiesIntoMap(Properties props, Map<K,V> map)
- 案例
Map<String,String> map = Maps.newHashMap();
map.put("a","1");
map.put("b","2");
Properties properties = new Properties();
properties.setProperty("c","3");
CollectionUtils.mergePropertiesIntoMap(properties,map);
System.out.println(map.toString());
//输出:{a=1, b=2, c=3}
3.3.firstElement
- 返回第一个元素
- 案例
ArrayList<Object> list1 = new ArrayList<Object>() {{
add(123);
add(22);
add(234);
}};
Object o = CollectionUtils.firstElement(list1);
System.out.println(o);
//输出:123
3.4.findFirstMatch
- 返回参数 candidates 中第一个存在于参数 source 中的元素
- 方法
<E> E findFirstMatch(Collection<?> source, Collection<E> candidates)
- 案例
ArrayList<Object> list1 = new ArrayList<Object>() {{
add("1");
add("2");
add("3");
}};
ArrayList<Object> list2 = new ArrayList<Object>() {{
add("1");
add("2");
add("2");
add("2");
add("3");
}};
Object firstMatch = CollectionUtils.findFirstMatch(list1, list2);
//输出:"1"
3.5.findCommonElementType
- 返回集合中元素的类型
- 如果一个集合中有多种类型的元素的话,会返回null
- 案例
ArrayList<Object> list1 = new ArrayList<Object>() {{
// 如果把下面的注释解开,集合中就会有多种类型的元素,就会返回null
// add("1");
// add("2");
add(123);
add(22);
add(234);
}};
Class<?> commonElementType = CollectionUtils.findCommonElementType(list1);
System.out.println(commonElementType); // class java.lang.Integer
//输出:class java.lang.Integer