当前位置: 首页 > 知识库问答 >
问题:

是否可能只从使用Java流的集合中获取特定的数据?

邴宏大
2023-03-14

我有以下代码

 @Override
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        HttpHeaders httpHeaders = Collections.list(httpServletRequest.getHeaderNames())
          .stream()
          .collect(Collectors.toMap(
            Function.identity(),
            h -> Collections.list(httpServletRequest.getHeaders(h)),
            (oldValue, newValue) -> newValue,
            HttpHeaders::new
          ));
        System.out.println(httpHeaders);
          chain.doFilter(request, response);
      }

共有1个答案

谭志用
2023-03-14

一个可能的解决方案

List<String> headerNames = Arrays.asList("Accept-Encoding", "Content-Type");
Map<String, String> headers = headerNames.stream()
     .collect(Collectors.toMap(Function.identity(), header -> httpServletRequest.getHeader(header)));

或者如果您希望获得HttpHeaders作为结果

List<String> headers = Arrays.asList("Accept-Encoding", "Content-Type");
HttpHeaders httpHeaders = new HttpHeaders();
headers.forEach(header -> {
    request.getHeaders(header)
             .asIterator()
             .forEachRemaining(value -> httpHeaders.add(header, value));
});
 类似资料:
  • 问题内容: 它是纠正与Java 8,你需要执行下面的代码确实获得从平行流Collection? 从CollectionAPI: 默认Stream parallelStream() 返回一个可能与此流作为其源的并行Stream。此方法允许返回顺序流。 从BaseStreamAPI: S parallel() 返回并行的等效流。可能由于流已经是并行的,或者因为基础流的状态被修改为并行而返回自身。 我需

  • 在Java8中,您需要执行以下代码才能从中获得并行流,这是否正确? 来自API: 默认流parallelStream()

  • 如果我有一个实体和一些惰性集合(、、,...),并且希望编写一个JpaRepository-method,该方法为我提供所有的人,这些人都渴望获取,这可能吗? 我知道人们可以在单个物体上做到这一点,但这在某种程度上可以在人的集合上做到吗?

  • 我一直在查看Laravel系列的文档和API,但似乎没有找到我想要的: 我想从集合中检索具有模型数据的数组,但只获取指定的属性。 例如,类似于,其中集合实际上包含用户的所有属性,因为它们在其他地方使用,但在这个特定位置,我需要一个包含userdata的数组,并且只包含指定的属性。 在拉雷维尔,似乎没有一个帮手来帮你我怎样才能用最简单的方法做到这一点?

  • 问题内容: 我正在从另一个来源接收ZipInputStream,并且需要将第一项的InputStream提供给另一个来源。 我希望能够在不将临时文件保存在设备上的情况下执行此操作,但是,我知道获取单个条目的InputStream的唯一方法是通过ZipFile.getInputStream(entry),并且因为我有一个ZipInputStream而不是ZipFile , 这是不可能的。 所以我最好