当前位置: 首页 > 面试题库 >

Java 8 forEach与索引

全弘深
2023-03-14
问题内容

有没有一种方法可以forEach在Java 8中构建使用索引迭代的方法?理想情况下,我想要这样的东西:

params.forEach((idx, e) -> query.bind(idx, e));

我现在能做的最好的事情是:

int idx = 0;
params.forEach(e -> {
  query.bind(idx, e);
  idx++;
});

问题答案:

由于您要遍历可索引的集合(列表等),因此我假设您可以仅遍历元素的索引:

IntStream.range(0, params.size())
  .forEach(idx ->
    query.bind(
      idx,
      params.get(idx)
    )
  )
;

生成的代码类似于使用经典i ++样式的for循环迭代列表,但具有更易于并行化的特性(当然,假设并发对params的只读访问是安全的)。



 类似资料:
  • 我正在尝试forEach中的方法引用 上面的工作很好,但我想让它更短的使用方法参考,但它给编译的问题,有什么办法使它发生?

  • 主要内容:索引,下载索引,构件搜索我们知道,Maven 中央仓库为用户提供了多达数十万构件,而 Nexus 可以代理所有的远程仓库(包括 Maven 中央仓库),可见 Nexus 仓库中构件的数量相当庞大。用户想要在这么多构件中,快速的查找自己所需的构件,一个最直接有效的方式就是:搜索。 Nexus 作为一款成熟的仓库管理工具,它通过维护仓库的索引提供了构件搜索功能,以便帮助用户方便快速地找到所需构件。 本节我们将详细为您介绍 N

  • 问题内容: 我在MySQL数据库中有下表: SQL将如下所示: 如您所见,我同时创建了primaryId和和imgDate索引键。我的想法是,该WHERE子句使用primaryId,而ORDER子句使用来查询结果imgDate。 我的问题是,现在使用多索引会更好吗?还是我应该使用多列索引(目前我不太了解)? 这是我从EXPLAIN得到的: 注意:这不是使用多列索引,这是使用上表说明的结果。 问题答

  • 问题内容: 缓存解决方案和索引解决方案之间的真正区别是什么?在我看来,索引解决方案实际上是具有运行搜索查询功能(例如:Elastic Search)的缓存。是否有任何真正的理由在同一项目中同时使用缓存解决方案和索引解决方案,或者索引解决方案基本上会使其他任何缓存变得多余? 示例:假设我对ElasticSearch使用NEST,它将存储并返回POCO;如果我随后查询ElasticSearch并已将P

  • 我最近开始在nutch上工作,我试图理解它是如何工作的。据我所知,Nutch基本上是用来抓取web的,Solr/Lucene是用来索引和搜索的。但是当我阅读nutch的文档时,它说nutch也做倒排索引。它是否在内部使用Lucene来进行索引,或者它是否有其他一些用于索引的库?如果它使用solr/Lucene进行索引,那么为什么有必要像nutch教程所说的那样用nutch配置solr呢? 是默认情

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!