我的ListUtil

一,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());
}

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值