List<实体类>转map<String,String>及重复处理

简介: List<实体类>转map<String,String>及重复处理

   这是我遇到的一种写法,由于之前没使用过,所以自己研究一下,感觉也就那么回事,下面是我自己的测试用例。

介绍一下:

  .stream().collect

   在Java中,.stream().collect()是一种用于对集合进行流式处理并收集结果的操作。它的主要作用是对集合中的元素进行某种操作,然后将结果收集起来。

package Tool;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.stream.Collectors;
import AnZhong.Student;
public class convertMap {
  public static void main(String[] args) {
    List<Student> list = new ArrayList<>();
    Student student = new Student();
    student.setAge("11");
    student.setName("万能C");
    student.setId(1);
    list.add(student);
    Student student2 = new Student();
    student2.setAge("11");
    student2.setName("admin");
    student2.setId(2);
    list.add(student2);
    Student student3 = new Student();
    student3.setAge("13");
    student3.setName("Jack");
    student3.setId(3);
    list.add(student3);
    //ke代表键,v是值,(k1,k2) -> k1如果有重复的ke,取第一个
    Map<String, String> map = list.stream().collect(Collectors.toMap(ke -> String.valueOf(ke.getId()),v -> v.getName(),(k1,k2) -> k1));
/********************** 检验是否转map成功 *************************/ 
//遍历方法一
    //获取map中的key键名的set集合
    Set<String> ketSet = map.keySet();
    // 得到迭代器
    Iterator<String> iterator = ketSet.iterator();
    //使用Lambda方式输出
    iterator.forEachRemaining(element -> {
      String value = map.get(element);
      System.out.println(element + "->" + value);
    });
//遍历方法二
    System.out.println("****************************");
    //Entry类,键值对类
    Set<Entry<String, String>> entrySet = map.entrySet();//引用的是java.util里面的包
    for (Entry<String,String> entry : entrySet) {
      //获取键值对类中的key
      String key = entry.getKey();
      //获取键值对类中的value
      String value = entry.getValue();
      System.out.println(key+":"+value);
    }
  }
}

打印结果:

 

相关文章
|
5天前
Properties转换成Map Map转Properties以及读取Properties乱码解决String转
Properties转换成Map Map转Properties以及读取Properties乱码解决String转
35 0
|
5天前
|
JSON 前端开发 Java
List<String> 如何传参
List<String> 如何传参
28 0
|
5天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
5天前
|
NoSQL Java Unix
Redis基础操作 String List
Redis基础操作 String List
11 0
|
5天前
|
JSON 数据格式
使用 Gson 将 Map、List等转换为json string
使用 Gson 将 Map、List等转换为json string
14 0
|
5天前
|
Java API
List转Map(id为key,list为value)
List转Map(id为key,list为value)
13 0
|
5天前
|
存储 安全 Java
Java集合详解(List、Map、Set)
Java集合详解(List、Map、Set)
34 4
|
5天前
|
存储 C语言 C++
C++中STL常用容器(vector、deque、list、map、set)一文带你了解
C++中STL常用容器(vector、deque、list、map、set)一文带你了解
|
5天前
|
Java
Java8中List转Map的几种方式
Java8中List转Map的几种方式
17 1
如何使用Stream流将List转换为Map
如何使用Stream流将List转换为Map