一,list 并集,交集,差集,无重复并集
List list1 =new ArrayList();
list1.add("1111");
list1.add("2222");
list1.add("3333");
List list2 =new ArrayList();
list2.add("3333");
list2.add("4444");
list2.add("5555");
//并集
// list1.addAll(list2);
// System.out.println(list1);//[1111, 2222, 3333, 3333, 4444, 5555]
//交集
// list1.retainAll(list2); System.out.println(list1);//[3333]
//差集
// list1.removeAll(list2); System.out.println(list1);//[1111, 2222]
//无重复并集
list2.removeAll(list1); System.out.println(list2);//[4444, 5555]
list1.addAll(list2); System.out.println(list1);//[1111, 2222, 3333, 4444, 5555]
二,比较器j8
/**
* 排序按中文的首字母
* 把中文.符号.数字转为字母排序
* @param li
* @return
*/
public static List<JSONObject> getSortList(List<JSONObject> li) {
Collections.sort(li,(JSONObject o1,JSONObject o2)-> Collator.getInstance(Locale.CHINA).compare(o1.getString("name"),o2.getString("name"));
return li;
}
三,简易输出J8
li.forEach((JSONObject t)->System.out.println(t.getString("name")));
四,list 转字符串
public static String listToString(List list, String separator) {
return org.apache.commons.lang.StringUtils.join(list.toArray(),separator);
}
equalsIgnoreCase 和 equals的区别
equalsIgnoreCase 可以忽略英文字符大小写比较两个字符串
public static boolean ignoreCaseEquals(String str1,String str2){
return str1 == null ? str2 == null :str1.equalsIgnoreCase(str2);
}
五,把数组转化为可操作的List
public static <E> List<E> transferArrayToList(E[] array){
List<E> transferedList = new ArrayList<>();
Arrays.stream(array).forEach(arr -> transferedList.add(arr));
return transferedList;
}
六,去除list里的重复数据
/**
* 去除对象重复数据(根据对象的属性去重)
* @param keyExtractor
* @return
*
*/
public static <T> Predicate<T> distinctByKey(Function<? super T, Object>
keyExtractor) {
Map<Object, Boolean> map = new ConcurrentHashMap<>();
return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
/**
* 去除list重复数据
* @param keyExtractor
* @return
*
*/
public static List<Map<String, String>> listDistinctByKey(List<Map<String, String>>
list,String key){
return list.stream().filter(p -> (!p.isEmpty()&&null!=p.get(key)))
.filter(distinctByKey(p -> p.get(key)))
.collect(Collectors.toList());
}