试图学习新的实用lambda用法。Lambda的使用,以消除如果
我有这样的问题:
我有了内部的某些其他对象的列表的对象。这些对象具有MyEnum字段。我想遍历这些对象,获取该Enum的状态,然后根据该对象将对象添加到List1,如果条件满足。如果不是,我想将该对象添加到List2。
基本上将一个列表分割成两个具有特殊条件的不同列表。
我一直在通过两种方法来实现这个目标,一个是古老的,每个都是古典的,第二个是Java 8 lambda,我也试图学习。
我的两个代码:
void groupObjects() {
for (ListObject listObject : object.getList()) {
if (MyEnum.STATUS.equals(listObject.getStatus())) {
otherList.add(listObject);
} else {
someOtherList.add(listObject);
}
}
}
void groupObjects() {
object.getList().parallelStream()
.filter(listObject-> MyEnum.STATUS.equals(listObject.getStatus()))
.forEach(listObject-> otherList.add(listObject));
object.getList().parallelStream()
.filter(listObject-> !MyEnum.STATUS.equals(listObject.getStatus()))
.forEach(listObject-> someOtherList.add(listObject));
}
这在我的脑海提出的问题:
- 这些是任何接近是正确的,漂亮的,下面的好做法的解决方案?
- 这对lambda好用吗?任何想法如何使它更简单?
- 也许我应该考虑这个任务的其他类或方法?
我已经阅读了关于.parallelStream()
的一部分,所以现在不要介意。
三元表达式'(MyEnum.STATUS == object.getStatus)? otherList:someOtherList'可能是最简单的方法。 – chrylis