java8 循环map_Java8遍历Map的三种方式——for/stream/forEach

最近写在基于Spring WebFlux项目遇到一个需求,希望将请求中的cookie/headers/params等信息获取,而获取后的数据结构都是MultiValueMap的数据结构,实质上可以看做是Map>这种数据结构。而我需要将其转换。

for循环遍历

Show me the code first!以下是代码,解释一下逻辑,原来的cookies数据结构为Map>,其中HttpCookie为cookie键值对,由于业务需要,我们需要将其转换成Map才更方便处理,于是乎就有了以下代码。(我这里直接用了foreach循环,也可以用fori循环,例如for(int i = 0; i< xx; i++))

MultiValueMap cookies = request.getCookies(); // 从request中获取原始的cookie

Map cookieMap = new HashMap<>(); // 新建一个map,将cookie转入该map中

for (Map.Entry> itemList : cookies.entrySet()) { // 遍历原始的MultiValueMap

for (HttpCookie item :itemList.getValue()) { // 遍历每个item中的List,其中的HttpCookie是我们需要的内容

cookieMap.put(item.getName(), item.getValue()); // 存入内容

}

}

复制代码

stream流的方式处理

在Java8中,我们可以使用流,将Collections或者数组转化成Stream,并用链式

你可能感兴趣的:(java8,循环map)