1.java8之前我们的遍历方式
@Slf4j
public class TestMain {
public static void main(String[] args) {
//一个map,key是姓名,value是年龄
Map<String, Integer> map = new HashMap<>();
map.put("zhangsan",18);
map.put("lisi",20);
map.put("wangwu",22);
map.put("zhaoliu", 25);
List<UserVo> list = new ArrayList<>();
//1.以前遍历map方式
Set<String> keySet = map.keySet();
for (String key : keySet) {
UserVo userVo = UserVo.builder()
.name(key)
.age(map.get(key))
.build();
list.add(userVo);
}
log.info("list={}",list);
}
}
结果
list=[UserVo(name=lisi, age=20), UserVo(name=zhaoliu, age=25), UserVo(name=zhangsan, age=18), UserVo(name=wangwu, age=22)]
2.java8之后使用forEach
@Slf4j
public class TestMain {
public static void main(String[] args) {
//一个map,key是姓名,value是年龄
Map<String, Integer> map = new HashMap<>();
map.put("zhangsan",18);
map.put("lisi",20);
map.put("wangwu",22);
map.put("zhaoliu", 25);
List<UserVo> list = new ArrayList<>();
//2.java8方式
map.forEach((s1,s2)->list.add(
UserVo.builder()
.name(s1)
.age(s2)
.build()));
log.info("UserVOList={}",list);
}
}
UserVOList=[UserVo(name=lisi, age=20), UserVo(name=zhaoliu, age=25), UserVo(name=zhangsan, age=18), UserVo(name=wangwu, age=22)]
可以看到使用java8的forEach方式遍历map明显代码量少很多,瞬间觉得代码清爽不少。
最后贴一下我的UserVo对象,使用了lombok的注解,
(当然 UserVo.builder().name(s1).age(s2).build()这个操作也是用得lombok功能)如果还有不了解Lombok的小伙伴,强烈建议去学习下。非常非常好用额!
import lombok.Builder;
import lombok.Data;
/**
* @author:luzaichun
* @Date:2019/12/22
* @Time:12:26
**/
@Data
@Builder
public class UserVo {
private String name;
private Integer age;
}