gpt4 book ai didi

java - 使用 For Each 或 Joins 过滤

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:26 25 4
gpt4 key购买 nike

我有一种方法可以找到运算符(operator)的位置。

public Optional<Integer> findToken(Character operator) {
return tokenList.stream()
.filter(x -> {
return x.position >= startPosition &&
x.position <= endPosition &&
x.operator == operator;
})
.findFirst()
.map(t -> t.position);
}

我不想每次都传递一个运算符,而是想传递几个不同的运算符。我已将运算符列表附加到数组中。有没有办法使用 JOIN 运算符或 For each 语法循环遍历列表并找到位置。

最佳答案

我不确定您为什么要使用 forEach() 的 JOIN,但这里有一个使用 Set.contains() 的解决方案:

public List<Integer> findTokens(Character operators[]) {
Set<Character> set = new HashSet<>();
set.addAll(Arrays.asList(operators));
return tokenList.stream()
.filter(x -> {
return x.position >= startPosition &&
x.position <= endPosition &&
set.contains(x.operator);
})
.map(t -> t.position)
.collect(Collectors.toList());
}

关于java - 使用 For Each 或 Joins 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31906077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com