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

使用Java8IntStream以循环方式从给定索引开始迭代列表,并获得匹配条件的第一个元素的索引

喻元龙
2023-03-14

问题陈述:一个对象列表,它需要以循环的方式迭代,从给定的索引开始,一直迭代到回到同一个索引。需要计算一个条件,并返回匹配该条件的第一个元素的索引。

因此,它的行为类似于满足条件的项的next按钮

public class Code {
private String type;
private String description;
private boolean option;
public String getType() {
    return type;
}
public void setType(String type) {
    this.type = type;
}
public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
public boolean isOption() {
    return option;
}
public void setOption(boolean option) {
    this.option = option;
}
@Override
public String toString() {
    return "Code [type=" + type + ", description=" + description + ", option=" + option + "]";
}
for(int i=((ind+1)%list.size());i!=ind;i=((i+1)%list.size())) {
        Code code = (Code)list.get(i);
        if(!code.isOption())
        {
            System.out.println("Index of the record matched" + i);
            break;
        }
    }

我希望使用Java8IntStream实现上述功能。请让我知道这是如何实现的。

共有1个答案

东门航
2023-03-14

您可以创建和连接两个int流,一个从startIndex开始,另一个以startIndex结束。

    int result = IntStream
                 .concat( 
                         IntStream.range( startIndex, list.size() ), 
                         IntStream.range(0, startIndex) )
                 .filter( i -> list.get(i).isOption() )
                 .findFirst()
                 .orElse(-1);
 类似资料:
  • 问题内容: 在Python中迭代列表时,设置起始索引的最佳方法是什么。例如,我有一个星期几的列表-星期日,星期一,星期二,…星期六- 但我想从星期一开始遍历该清单。最佳做法是什么? 问题答案: 您可以使用切片: 这将从第三个元素开始,然后迭代到结束。

  • 问题内容: 我有一个。我想获取具有特定用户名的流中(第一个)用户的索引。我并不想实际上要求对它们进行描述,而只是具有相同的用户名。 我可以想到执行此操作的丑陋方法(重复和计数),但是感觉应该有一个不错的方法可以执行此操作,可能是使用Streams。到目前为止,我拥有的最好的是: 这不是我写过的最糟糕的代码,但这不是很好。它也不是那么灵活,因为它依赖于一个映射类型的函数,该函数具有描述您要寻找的属性

  • 这不是我写过的最糟糕的代码,但也不是很好。它也不是那么灵活,因为它依赖于一个映射函数到一个带有函数的类型,该函数描述了您要查找的属性;我更希望有一个可以用于任意的东西 有人知道怎么做吗?

  • 我知道不建议在迭代时从列表中删除元素。 您最好使用iterator.remove()、java流,或者将remove复制到外部列表中。 但这段简单的代码正好起作用: 使用安全吗?

  • 本文向大家介绍列表中特定于Python索引的循环迭代,包括了列表中特定于Python索引的循环迭代的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序来循环访问给定列表中的列表。让我们看一下解决问题的步骤 初始化列表和索引。 使用len查找列表的长度。 使用长度遍历列表。 使用index%length查找元素的索引。 打印元素。 递增索引。 这是一个简单的循环迭代。您可以编写它

  • 问题内容: 有没有我可以用来遍历数组并具有索引和元素的函数,例如Python的枚举? 问题答案: 是。从Swift 3.0开始,如果需要每个元素的索引及其值,则可以使用该方法遍历数组。它返回由索引和数组中每个项目的值组成的对对的序列。例如: 在Swift 3.0之前和Swift 2.0之后,该函数称为: 在Swift 2.0之前,它是全局函数。