学习 Java 8 - 用于地图输入

use*_*431 2 java java-8

是否有更简单的方法来使用 Java 8 实现以下代码?

    Enumeration headerNames = request.getHeaderNames();
    List<Entry<String, String>> headers = new ArrayList<>();
    while (headerNames.hasMoreElements()) {
        String headerName = (String) headerNames.nextElement();
        headers
            .add(Map.entry(headerName, request.getHeader(headerName)));
    }
Run Code Online (Sandbox Code Playgroud)

编辑:

是的,请求是 HttpServletRequest

Had*_*i J 5

你可以这样做

Collections.list(request.getHeaderNames()).stream()
            .map(e->new AbstractMap.SimpleEntry<>(e,request.getHeader(e)))
            .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

  • 映射操作中“SimpleEntry”的初始化中缺少“&lt;&gt;”。为什么在一个地方使用“toString”而不是在另一个地方? (2认同)