jdk8中list转map的两种方法

/**
  * 把list转为Map 的形式,其中Long和String都可以改为自己的类型
  * 其中accounts为list集合,account是集合元素,getId和getUsername都是集合元素的方法
*/
public Map listToMap(List accounts) {
    return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));
}

/**
  * 把list转为Map 的形式,其中Long,Account都可以改为自己的类型
  * 其中account -> account是返回集合元素本身
*/
public Map getIdAccountMap(List accounts) {
    return accounts.stream().collect(Collectors.toMap(Account::getId, account -> account));
}

/**
  * 把list转为Map 的形式,其中Long,Account都可以改为自己的类型
  * 其中Function.identity()也是返回集合元素本身,另外 (key1, key2) -> key2)是发生冲突的时候    
  * 选择覆盖前面的值
*/
public Map getNameAccountMap(List accounts) {
    return accounts.stream().collect(Collectors.toMap(Account::getUsername, Function.identity(), (key1, key2) -> key2));
}

 

你可能感兴趣的:(Java基础)