作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一种方法可以找到运算符(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/
我是一名优秀的程序员,十分优秀!