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

2024-01-10 05:58:26

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

    //List转Map
	public static <K, V> Map<K, List<V>> getMapByListAndGroup(List<V> list, String field) {
		Map<K, List<V>> map = new HashMap<>();
		if (list == null) {
			return map;
		}
		List<V> 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;
	}

文章来源:https://blog.csdn.net/weixin_47315082/article/details/135474532
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。