小编sai*_*sez的帖子

使用Java流,如何过滤集合,使结果包含所有元素,直到找到匹配项?

如果我有一个List包含对象

new MyObj("some"),
new MyObj("foo"),
new MyObj("bar"),
new MyObj("xyz");
Run Code Online (Sandbox Code Playgroud)

并希望在匹配某些条件使用Java 8流对其进行过滤,例如

myObj.prop = "foo";
Run Code Online (Sandbox Code Playgroud)

如何实现?

以上示例的结果应为

new MyObj("some"),
new MyObj("foo")
Run Code Online (Sandbox Code Playgroud)

那将是“传统”的方式:

List<MyObj> results = new ArrayList<>();
for (MyObj myObj : myObjList) {
  if (!myObj.prop.equals("foo")) {
    results.add(myObj);
  } else {
    results.add(myObj);
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

它不是谓词限制流的重复,因为它不包含匹配的元素。但是,我应该能够适应takeWhile操作。

java java-8 java-stream

4
推荐指数
1
解决办法
1046
查看次数

Typescript分配一个空字符串而不是布尔值

鉴于此打字稿(2.7.2)界面:

export interface A {
  b?: string;
  c?: boolean;
}
Run Code Online (Sandbox Code Playgroud)

这将按预期打印布尔值'false':

let a: A = {b: ''};
if (a.b && a.b.length > 0) {
  a.c = true;
} else {
  a.c = false;
}
console.log(a.c);
Run Code Online (Sandbox Code Playgroud)

但是,这会打印一个空的''字符串:

let a: A = {b: ''};
a.c = a.b && a.b.length > 0;
console.log(a.c);
Run Code Online (Sandbox Code Playgroud)

我在这里有点困惑.第二个例子应该像第一个例子一样,对吧?我错过了什么?

typescript

3
推荐指数
1
解决办法
132
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

typescript ×1