java自定义工具类在List快速查找相同字段值对象

根据对象某一字段名,获取字段值,将List转换为Map中包含list,Key为字段值,Value为相同字段值的对象list,快速定位具有相同字段值的对象,转换之后便于在Map中根据字段值快速查找相同字段值的对象

    //List转Map
	public static  Map> getMapByListAndGroup(List list, String field) {
		Map> map = new HashMap<>();
		if (list == null) {
			return map;
		}
		List objList;
		for (V obj : list) {
			Class clazz = obj.getClass();
			Field f;
			K fieldValue = null;
			try {
				f = clazz.getDeclaredField(field);
				f.setAccessible(true);
				fieldValue = (K) f.get(obj);
			} catch (Exception e) {
				e.printStackTrace();
			}
			if (map.containsKey(fieldValue)) {
				objList = map.get(fieldValue);
			} else {
				objList = new ArrayList<>();
			}
			objList.add(obj);
			map.put(fieldValue, objList);
		}
		return map;
	}

你可能感兴趣的:(开发笔记,java,list,windows)