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

获取符合条件的第一个元素

阮轶
2023-03-14
问题内容

如何获取与流中的条件匹配的第一个元素?我已经尝试过了但是没用

this.stops.stream().filter(Stop s-> s.getStation().getName().equals(name));

该条件不起作用,在除Stop之外的其他类中调用filter方法

public class Train {

private final String name;
private final SortedSet<Stop> stops;

public Train(String name) {
    this.name = name;
    this.stops = new TreeSet<Stop>();
}

public void addStop(Stop stop) {
    this.stops.add(stop);
}

public Stop getFirstStation() {
    return this.getStops().first();
}

public Stop getLastStation() {
    return this.getStops().last();
}

public SortedSet<Stop> getStops() {
    return stops;
}

public SortedSet<Stop> getStopsAfter(String name) {


    // return this.stops.subSet(, toElement);
    return null;
}
}


import java.util.ArrayList;
import java.util.List;

public class Station {
private final String name;
private final List<Stop> stops;

public Station(String name) {
    this.name = name;
    this.stops = new ArrayList<Stop>();

}

public String getName() {
    return name;
}

}

问题答案:

这可能是您要寻找的:

yourStream
    .filter(/* your criteria */)
    .findFirst()
    .get();

一个例子:

public static void main(String[] args) {
    class Stop {
        private final String stationName;
        private final int    passengerCount;

        Stop(final String stationName, final int passengerCount) {
            this.stationName    = stationName;
            this.passengerCount = passengerCount;
        }
    }

    List<Stop> stops = new LinkedList<>();

    stops.add(new Stop("Station1", 250));
    stops.add(new Stop("Station2", 275));
    stops.add(new Stop("Station3", 390));
    stops.add(new Stop("Station2", 210));
    stops.add(new Stop("Station1", 190));

    Stop firstStopAtStation1 = stops.stream()
            .filter(e -> e.stationName.equals("Station1"))
            .findFirst()
            .get();

    System.out.printf("At the first stop at Station1 there were %d passengers in the train.", firstStopAtStation1.passengerCount);
}

输出为:

At the first stop at Station1 there were 250 passengers in the train.


 类似资料:
  • 如何在流中获得第一个匹配条件的元素?我试过了,但不起作用 如果条件不起作用,则在Stop以外的其他类中调用filter方法。

  • 我想我有一个相对简单的问题,但无法找到一个合适的答案来解决编码问题。 我有一个字符串的熊猫列: 我需要提取文本并将其推入Python str对象,其格式如下: 我们的目标是对tweet的测试集进行分类,从而相信:是一个str对象。

  • 问题内容: 我想从符合条件的列表中获得第一项。重要的是,生成的方法不能处理整个列表,这可能会很大。例如,以下功能是足够的: 可以使用以下功能: 但是,我想不出一个好的内置式/单层式来让我做到这一点。如果不需要,我特别不想复制此功能。是否有内置的方法来获取与条件匹配的第一项? 问题答案: 在Python 2.6或更高版本中: 如果在找不到匹配元素的情况下希望被引发: 如果你希望返回(例如None),

  • 问题内容: 我有一个数组: 我想获得此数组的第一个元素。预期结果: 字符串 一个要求: 它不能通过引用传递来完成 ,所以不是一个好的解决方案。 我怎样才能做到这一点? 问题答案: 原始答案,但代价昂贵(O(n)): 在O(1)中: 其他用例等 如果修改(就重置数组指针而言)不是问题,则可以使用: 如果需要数组“副本”,则从理论上讲应该更有效: 使用PHP 5.4+(但如果为空,则可能导致索引错误)

  • 返回数组的第一个元素。 使用 arr[0] 返回传递数组的第一个元素。 const head = arr => arr[0]; head([1, 2, 3]); // 1

  • 问题内容: 我有这个数组: 我想要这个数组: 如何从一对货币中提取价值? 问题答案: 您可以使用map来获取元组的第一个元素,如下所示: