精华内容
下载资源
问答
  • list转map

    2019-09-06 10:56:57
    list转map package com.wy.my_test_demo; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; ...

    list 转 map 要求key必须唯一

    package com.wy.my_test_demo;
    
    import org.junit.runner.RunWith;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.util.Arrays;
    import java.util.List;
    import java.util.Map;
    import java.util.stream.Collectors;
    
    /**
     * @author wySama
     * @date 2019-09-06 10:21
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class Test {
    
        List<BizArtistOther> bizArtistOtherList = Arrays.asList(
                new BizArtistOther( "1001", "123123", "1" ),
                new BizArtistOther( "1002", "123123", "6" ),
                new BizArtistOther( "1003", "123123", "5" ),
                new BizArtistOther( "1004", "123123", "4" )
        );
    
        /**
         * key根据某个字段排序
         */
        @org.junit.Test
        public void test1() {
            Map<String, List<BizArtistOther>> bizArtistOtherMap = bizArtistOtherList.stream().collect( Collectors.groupingBy( BizArtistOther::getOtherType ) );
            bizArtistOtherMap.forEach( (key, value) -> {
                System.out.println( "key: " + key + "    value: " + value.toString() );
            } );
        }
    
        @org.junit.Test
        public void test2() {
            Map<String, BizArtistOther> map = bizArtistOtherList.stream().collect(Collectors.toMap(BizArtistOther::getOtherType, bizArtistOther -> bizArtistOther));
            // 遍历打印结果
            map.forEach((key, value) -> {
                System.out.println("key: " + key + "    value: " + value);
            });
        }
    
        /**
         * list 转 map  指定 key和 value
         */
        @org.junit.Test
        public void test3() {
            Map<String, String> map = bizArtistOtherList.stream().collect( Collectors.toMap( BizArtistOther::getOtherId, BizArtistOther::getOtherType ) );
            map.forEach( (key, value) -> {
                System.out.println( "key: " + key + "    value: " + value );
            } );
        }
    
    }
    
    
    展开全文
  • List转Map

    2017-08-18 16:23:06
    /** * list转map * @param list list集合 * @param methodName 对象方法名称 * @param methodArgs 对象方法的参数 * @param
    	/**
    	 *	list转map
    	 * @param list                              list集合
    	 * @param methodName                        对象方法名称
    	 * @param methodArgs                        对象方法的参数
    	 * @param <T>                               对象
    	 * @param <K>                          	  转换Map的key数据类型
    	 * @return Map                              转换后的map
    	 * @throws NoSuchMethodException	        异常
    	 * @throws InvocationTargetException	    异常
    	 * @throws IllegalAccessException	        异常
    	 */
    	@SuppressWarnings("unchecked")
    	public static <K, T> Map<K, T> listToMapKey(List<T> list, String methodName, Object... methodArgs) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
    		Map<K, T> returnMap = new HashMap<>();
    		if (list != null) {
    			for (T t : list) {
    				Class<?> clz = t.getClass();
    				Class[] argsClass = new Class[methodArgs.length];
    				for (int i = 0; i < methodArgs.length; i++) {
    					argsClass[i] = methodArgs[i].getClass();
    				}
    				Method mth = clz.getMethod(methodName, argsClass);
    				K key = (K) mth.invoke(t, methodArgs);
    				returnMap.put(key, t);
    			}
    		}
    		return returnMap;
    	}

    展开全文
  • List转Map的三种方法

    万次阅读 多人点赞 2018-04-03 13:26:33
    List转Map三种方法。

    for循环


    import com.google.common.base.Function;
    import com.google.common.collect.Maps;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class ListToMap {
        public static void main(String[] args) {
            List<User> userList = new ArrayList<>();
            User user1 = new User();
            user1.setId(1L);
            user1.setAge("12");
    
            User user2 = new User();
            user2.setId(2L);
            user2.setAge("13");
    
            userList.add(user1);
            userList.add(user2);
    
            Map<Long, User> maps = new HashMap<>();
            for (User user : userList) {
                maps.put(user.getId(), user);
            }
    
            System.out.println(maps);
    
        }
    
        public static class User {
            private Long id;
            private String age;
    
            public Long getId() {
                return id;
            }
    
            public void setId(Long id) {
                this.id = id;
            }
    
            public String getAge() {
                return age;
            }
    
            public void setAge(String age) {
                this.age = age;
            }
    
            @Override
            public String toString() {
                return "User{" +
                        "id=" + id +
                        ", age='" + age + '\'' +
                        '}';
            }
        }
    }
    
    
    

    使用guava


     Map<Long, User> maps = Maps.uniqueIndex(userList, new Function<User, Long>() {
                @Override
                public Long apply(User user) {
                    return user.getId();
                }
       });
    

    使用JDK1.8


    Map<Long, User> maps = userList.stream().collect(Collectors.toMap(User::getId,Function.identity()));
    

    看来还是使用JDK 1.8方便一些。另外,转换成map的时候,可能出现key一样的情况,如果不指定一个覆盖规则,上面的代码是会报错的。转成map的时候,最好使用下面的方式:

    Map<Long, User> maps = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (key1, key2) -> key2));
    
    

    有时候,希望得到的map的值不是对象,而是对象的某个属性,那么可以用下面的方式:

    Map<Long, String> maps = userList.stream().collect(Collectors.toMap(User::getId, User::getAge, (key1, key2) -> key2));
    
    

    展开全文
  • list转Map

    2021-04-12 10:28:31
    Map<String, List<FeeDeductSaveDto>> groupMapList = dto.stream().collect(Collectors.groupingBy(FeeDeductSaveDto::getDepositId));

    Map<String, List<FeeDeductSaveDto>> groupMapList = dto.stream().collect(Collectors.groupingBy(FeeDeductSaveDto::getDepositId));

     

     

     

    List<UserAuthOrgTreeVo> authProjectList = uacOrganizationApi.findLoginOrganizationChildProjectList(TcsConstants.BEARER, token, dto.getOrgId()).getResult();
            if (PublicUtil.isNotEmpty(authProjectList)) {
                dto.setOrgIds(authProjectList.stream().map(UserAuthOrgTreeVo::getId).collect(Collectors.toList()));
            }

     

    List<ConstructionOperartionButtonVo> empStatusCountList = constructionDetailMapper.selectConstructionEmployeeStatusRqeustCount(constructionQueryEmployeePojo);      

          Map<String, ConstructionOperartionButtonVo> appleMap = empStatusCountList.stream().collect(Collectors.toMap(ConstructionOperartionButtonVo::getConstructionNo, a -> a, (k1, k2) -> k1));        

        Map<String, List<FeeDeductSaveDto>> groupMapList = dto.stream().collect(Collectors.groupingBy(FeeDeductSaveDto::getDepositId));

     

     

     

     

    展开全文
  • Java8新特性Stream之list转map及问题解决

    万次阅读 多人点赞 2018-10-11 14:57:44
    List集合转Map,用到的是Stream中Collectors的toMap方法:Collectors.toMap 具体用法实例如下: //声明一个List集合 List&amp;lt;Person&amp;gt; list = new ArrayList(); list.add(new Person(&...
  • list 转换 map

    2013-03-18 10:50:55
    public static Map> findByIdMap(PlanInfo plan) {  Map> map = new HashMap>();  List helplist = plan.getPointList();  List list = null;  int day = 1;  for (int i = 0; i  if (i == 0)  li
  • list去重,根据对象某个属性、某几个属性去重 去除List中重复的String List unique = list.stream().distinct().collect(Collectors.toList()); 去除List中重复的对象 // Person 对象 public class ...
  • List<Object>转Map<String,List<... list转map // 从数据库中获取数据 List<PmsSkuStock> pmsSkuStocks = pmsSkuStockMapper.selectlist(); // 创建map Map<Long, List<PmsSk.
  • List分组、List转Map、String转List、mapKey转list、循环map、过滤Filter、List转String 1、分组 List里面的对象元素,以某个属性来分组,将属性相同的放在一起: //List 以名称分组 Map<String, List<...
  • list转map踩坑

    2021-02-26 16:51:11
    list转map踩坑 1.Duplicate key 使用stream流把list转map的时候,作为map的key一定要唯一,否则会报错Duplicate key,建议把主键或者唯一索引作为key 2.value不能为null,key可以为null 由于Collectors.toMap的底层...
  • 对象List 转Map

    2021-01-21 15:19:12
    java8对象List 转Map 此处的roles 为List<Role> Map<String,Role> map = roles.stream(). collect(Collectors.toMap(Role::getRoleCode,a->a));
  • 主要介绍了Java Lambda List转Map代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java8中list转map方法总结

    万次阅读 多人点赞 2018-08-12 22:13:34
    在最近的工作开发之中,慢慢习惯了很多Java8中的Stream的用法,很方便而且也可以并行的去执行这个流,这边去写一下昨天遇到的一个list转map的场景。 list转map在Java8中stream的应用 常用方式 1.利用...
  • java8实现map遍历,map转list,list转map

    万次阅读 2019-06-12 10:59:05
    遍历map map.forEach((k, v) -> System.out.println("key:value = " + k + ":" + v));... map转list map.entrySet().stream().map(e -> new Person(e.getKey(),e.getValue())).collect(Collectors....
  • List 转化为Map Map<String, Object> totalMap = ListMap.stream().collect( Collectors.toMap(x -> x.get(key).toString(), x -> Integer.valueOf(x.get(Key).toString()))); key 为map中的 key值 ...
  • JDK1.8 List 转Map

    千次阅读 2020-03-28 11:39:08
    申明LinkedHashMap public static Map<String, ColunmMpDO> mapColunmMpDO = new LinkedHashMap<String, ColunmMpDO>... LIst 转Map mapColunmMpDO = list.stream() .colle...
  • Java List转Map Map的Key,Value翻转

    千次阅读 2019-11-07 09:11:15
    1.Stream工具 处理集合问题,如果开发环境是Java 8+,多使用Stream,Stream ...1.List转Map Map<String, String> collect = list.stream().collect(Collectors.toMap(obj -> obj.getXXX(), obj -> obj.g...
  • jdk1.8list转map的测试类

    2019-09-06 11:01:49
    list转map的测试类,用到jdk1.8的新特性,感觉用起来很方便
  • Java8实现List转Map

    2021-03-11 10:16:23
    Java8实现List转Map List里面的对象元素,以某个属性来分组,例如,以id分组,将id相同的放在一起 //List 以ID分组 Map<Long, List<Sku>> mapList = skuList.stream().collect(Collectors.groupingBy...
  • Java jdk List转map

    2020-08-24 15:02:38
    List转map 使用JDK1.8 Map<Long, User> maps = userList.stream().collect(Collectors.toMap(User::getId,Function.identity())); 看来还是使用JDK 1.8方便一些。另外,转换成map的时候,可能出现key一样的...
  • java List转Map

    千次阅读 2019-03-03 16:17:23
    在平时的编程过程中,list和map是集合中最常遇到的两种,熟练使用这两种集合是程序员必须具备的技能,list转map的应用常见也是很常遇到的,结合我最近的一个使用场景说一下: 比如我们需要这样的数据 a.id ,a.name ...
  • 项目中经常会遇到list转String,list转map,String转list等情况,特在这里记录一下。 1.list转String 将List集合转化为用符号隔开的String字符串,只要用StringUtils中的join就行。 String listToString= org....
  • Java8 lambda list转map

    2020-08-11 14:52:46
    1、list转Map<String,String> public Map<String, String> getIdNameMap(List<Account> accounts) { return accounts.parallelStream().collect(Collectors.toMap(Account::getUserId, Account::...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,933
精华内容 2,773
关键字:

list转map