ListUtils

import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

public class ListUtil {

   /**
	* json->List<Map>
	*/
	List<Map> productList = Lists.newArrayList();
	productList.forEach(product->{
		// JSON数组字符串转List<Map>
		List<Map> groupNumberList = JSONArray.parseArray(product.get("key").toString(), Map.class);
		List<Integer> numberList = new ArrayList<Integer>();
		// 排序
		product.put("key", numberList.stream().sorted().collect(Collectors.toList()));
	});
	
	/*
	 * List<T> -> List<Map<String, Object>>
	 */
	public static <T> List<Map<String, Object>> listConvert(List<T> list) {
		List<Map<String, Object>> list_map = new ArrayList<Map<String, Object>>();
		if (CollectionUtils.isNotEmpty(list)) {
			list.forEach(item -> {
				Map<String, Object> map = (Map<String, Object>) (item);
				list_map.add(map);
			});
		}
		return list_map;
	}

	/**
	 * 判断list的map数据中,是否含有对应的key,与value
	 * 
	 * @param list  
	 * 			list数据格式List&lt;Map&gt;
	 * 
	 * @param key
	 * 			map中的key
	 * 
	 * @param value
	 * 			map中key对应的value
	 * 
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isHasKeyValue(List list,String key,Object value) {
		
		if(null == list || list.isEmpty()) {
			return false;
		}
		boolean flag = false;
		//遍历list
		for (Object object : list) {
			Map map  = (Map) object;
			Object mapValue = map.get(key);
			if(mapValue == value) {
				flag = true;
				break;
			} else if(mapValue instanceof String && value instanceof String){
				String mapStr  = (String) mapValue;
				String valueStr = (String) value;
				if(StringUtils.equals(mapStr, valueStr)){
					flag = true;
					break;
				}
			}  else if(mapValue instanceof Integer && value instanceof Integer){
				int mapStr  = (Integer) mapValue;
				int valueStr = (Integer) value;
				if(mapStr == valueStr){
					flag = true;
					break;
				}
			} else if(mapValue instanceof Double && value instanceof Double){
				double mapStr  = (Double) mapValue;
				double valueStr = (Double) value;
				if(mapStr == valueStr){
					flag = true;
					break;
				}
			} else if(mapValue instanceof Float && value instanceof Float){
				float mapStr  = (Float) mapValue;
				float valueStr = (Float) value;
				if(mapStr == valueStr){
					flag = true;
					break;
				}
			} else if(mapValue instanceof Long && value instanceof Long){
				long mapStr  = (Long) mapValue;
				long valueStr = (Long) value;
				if(mapStr == valueStr){
					flag = true;
					break;
				}
			} else if(mapValue instanceof Byte && value instanceof Byte){
				byte mapStr  = (Byte) mapValue;
				byte valueStr = (Byte) value;
				if(mapStr == valueStr){
					flag = true;
					break;
				}
			} else if(mapValue instanceof Character && value instanceof Character){
				char mapStr  = (Character) mapValue;
				char valueStr = (Character) value;
				if(mapStr == valueStr){
					flag = true;
					break;
				}
			} else if(mapValue instanceof Short && value instanceof Short){
				short mapStr  = (Short) mapValue;
				short valueStr = (Short) value;
				if(mapStr == valueStr){
					flag = true;
					break;
				}
			} else if(mapValue instanceof Boolean && value instanceof Boolean){
				boolean mapStr  = (Boolean) mapValue;
				boolean valueStr = (Boolean) value;
				if(mapStr == valueStr){
					flag = true;
					break;
				}
			}
		}
		return flag;
	}
	
	
	/**
	 * 判断list的map数据中,对应的key的值是否全部与value一直
	 * 
	 * @param list  
	 * 			list数据格式List&lt;Map&gt;
	 * 
	 * @param key
	 * 			map中的key
	 * 
	 * @param value
	 * 			需判断的value
	 * 
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isAllEqualsValue(List list,String key,Object value) {
		
		if(null == list || list.isEmpty()) {
			return false;
		}
		boolean flag = true;
		//遍历list
		for (Object object : list) {
			Map map  = (Map) object;
			Object mapValue = map.get(key);
			if(mapValue instanceof String && value instanceof String){
				String mapStr  = (String) mapValue;
				String valueStr = (String) value;
				if(!StringUtils.equals(mapStr, valueStr)){
					flag = false;
					break;
				}
			}  else if(mapValue instanceof Integer && value instanceof Integer){
				int mapStr  = (Integer) mapValue;
				int valueStr = (Integer) value;
				if(mapStr != valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Double && value instanceof Double){
				double mapStr  = (Double) mapValue;
				double valueStr = (Double) value;
				if(mapStr != valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Float && value instanceof Float){
				float mapStr  = (Float) mapValue;
				float valueStr = (Float) value;
				if(mapStr != valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Long && value instanceof Long){
				long mapStr  = (Long) mapValue;
				long valueStr = (Long) value;
				if(mapStr != valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Byte && value instanceof Byte){
				byte mapStr  = (Byte) mapValue;
				byte valueStr = (Byte) value;
				if(mapStr != valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Character && value instanceof Character){
				char mapStr  = (Character) mapValue;
				char valueStr = (Character) value;
				if(mapStr != valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Short && value instanceof Short){
				short mapStr  = (Short) mapValue;
				short valueStr = (Short) value;
				if(mapStr != valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Boolean && value instanceof Boolean){
				boolean mapStr  = (Boolean) mapValue;
				boolean valueStr = (Boolean) value;
				if(mapStr != valueStr){
					flag = false;
					break;
				}
			} else if(mapValue != value) {
				flag = false;
				break;
			} 
		}
		return flag;
	}
	
	
	/**
	 * 判断list的map数据中,对应的key的值是否全部与value不一致
	 * 
	 * @param list  
	 * 			list数据格式List&lt;Map&gt;
	 * 
	 * @param key
	 * 			map中的key
	 * 
	 * @param value
	 * 			需判断的value
	 * 
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isAllNotEqualsValue(List list,String key,Object value) {
		if(null == list || list.isEmpty()) {
			return false;
		}
		boolean flag = true;
		//遍历list
		for (Object object : list) {
			Map map  = (Map) object;
			Object mapValue = map.get(key);
			if(mapValue == value) {
				flag = false;
				break;
			} else if(mapValue instanceof String && value instanceof String){
				String mapStr  = (String) mapValue;
				String valueStr = (String) value;
				if(StringUtils.equals(mapStr, valueStr)){
					flag = false;
					break;
				}
			}  else if(mapValue instanceof Integer && value instanceof Integer){
				int mapStr  = (Integer) mapValue;
				int valueStr = (Integer) value;
				if(mapStr == valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Double && value instanceof Double){
				double mapStr  = (Double) mapValue;
				double valueStr = (Double) value;
				if(mapStr == valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Float && value instanceof Float){
				float mapStr  = (Float) mapValue;
				float valueStr = (Float) value;
				if(mapStr == valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Long && value instanceof Long){
				long mapStr  = (Long) mapValue;
				long valueStr = (Long) value;
				if(mapStr == valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Byte && value instanceof Byte){
				byte mapStr  = (Byte) mapValue;
				byte valueStr = (Byte) value;
				if(mapStr == valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Character && value instanceof Character){
				char mapStr  = (Character) mapValue;
				char valueStr = (Character) value;
				if(mapStr == valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Short && value instanceof Short){
				short mapStr  = (Short) mapValue;
				short valueStr = (Short) value;
				if(mapStr == valueStr){
					flag = false;
					break;
				}
			} else if(mapValue instanceof Boolean && value instanceof Boolean){
				boolean mapStr  = (Boolean) mapValue;
				boolean valueStr = (Boolean) value;
				if(mapStr == valueStr){
					flag = false;
					break;
				}
			}
		}
		return flag;
	}
	
	/**
	 * 
	 * 判断list是否为空<br>
	 * 
	 * list == null || list.isEmpty  ==》 true
	 * 
	 * @param list
	 * 
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isEmpty (List list) {
		if(list == null || list.isEmpty()) {
			return true;
		} 
		return false;
	}
	
	/**
	 * 
	 * 判断Map是否为空<br>
	 * 
	 * map == null || map.isEmpty  ==》 true
	 * 
	 * @param list
	 * 
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isEmpty (Map map) {
		if(map == null || map.isEmpty()) {
			return true;
		} 
		return false;
	}
	
	
	/**
	 * 
	 * 判断list是否不为空<br>
	 * 
	 * list == null || list.isEmpty  ==》 true
	 * 
	 * @param list
	 * 
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isNotEmpty (List list) {
		return !isEmpty(list);
	}
	
	/**
	 * 
	 * 判断Map是否不为空<br>
	 * 
	 * map != null && !map.isEmpty  ==》 true
	 * 
	 * @param list
	 * 
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isNotEmpty (Map map) {
		return !isEmpty(map);
	}
	
	/**
	 * 先根据序列 获取list中的map对象
	 * 再根据map中的key获取对应的value值
	 * 
	 * @param list
	 * @param index
	 * 
	 * @return
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static <T> T getValueByIndex(List list,int index,String key) {
		if(isEmpty(list)) {
			return (T) "";
		}
		Map map = (Map) list.get(index);
		if(isEmpty(map)) {
			return (T) "";
		}
		if(map.containsKey(key)) {
			return (T) map.get(key);
		}
		return (T) "";
		
	}
	
	/**
	 * 先根据序列 获取list中的map对象
	 * 再根据map中的key获取对应的value值
	 * 
	 * @param list
	 * @param index
	 * @param key
	 * 			map中的key
	 * @return
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static <T> T getValueByIndex(List list,int index,String key,Object defl) {
		if(isEmpty(list)) {
			return (T) "";
		}
		Map map = (Map) list.get(index);
		if(isEmpty(map)) {
			return (T) "";
		}
		if(map.containsKey(key)) {
			return (T) map.get(key);
		}
		return (T) defl;
		
	}
	
	 /**
	 * 根据key取得map List中的值
	 * @param paraList 数据列表
	 * @param keyName1 属性名1
	 * @param keyValue1 属性值1
	 * @param keyName2 属性名2
	 * @param keyName3 属性名3
	 * @param Values[]
	 * @return Map
	 */
	public static Map getMapValue(List paraList,String keyName1,String keyValue1){
		if(paraList == null || paraList.size() == 0){			
			return null;
		}
		
		if(StringUtil.isEmpty(keyValue1)){			
			return null;
		}
		Map map;
		try{
			for(int i=0;i<paraList.size();i++){
				map=(Map)paraList.get(i);
				if(map == null || map.isEmpty()){
					continue;
				}
				if(map.get(keyName1)!=null&&map.get(keyName1).toString().equals(keyValue1)){
					return map;				
				}			
			}
		}catch(Exception e){
			e.printStackTrace();
			return null;
		}
		return null;
	}
	
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值