我有一种方法可以找到操作员的位置。
private Thread thread = new Thread() {
@Override
public void run() {//...
}
}
};
我不想传递单个运算符,而是希望每次都传递一些不同的运算符。我已将运算符列表附加到数组上。有没有办法使用JOIN运算符或For each语法遍历列表并找到位置。
答案 0 :(得分:2)
我不确定为什么要使用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());
}