Java 如何在默认情况下使用lambdaj组
在这种情况下,我会根据条件将列表筛选为多个列表Java 如何在默认情况下使用lambdaj组,java,lambdaj,Java,Lambdaj,在这种情况下,我会根据条件将列表筛选为多个列表 for(SomeObj someObj : someObjs) { if(StringUtils.equalsIgnoreCase(someObj.getIndicator(), "Y")) { beansWithY.add(someObj); } else if(StringUtils.equalsIgnoreCase(someObj.getIndicator(), "N")) { beansWit
for(SomeObj someObj : someObjs) {
if(StringUtils.equalsIgnoreCase(someObj.getIndicator(), "Y")) {
beansWithY.add(someObj);
} else if(StringUtils.equalsIgnoreCase(someObj.getIndicator(), "N")) {
beansWithN.add(someObj);
} else {
beansWithIndNotValid.add(someObj);
}
}
这看起来很简单,但是,我想知道是否可以使用Lambdaj
我遇到了分组,它可以像下面那样使用,但是,它似乎没有涵盖默认场景
Group<SomeObj> group = group(listOfSomeObjs, by(on(SomeObj.class).getIndicator()));
我想知道这是否可以像上面提到的for循环那样工作,如果是Y-转到一个列表/组,N-转到另一个列表/组,其他所有内容都转到一个组。使用“组”功能无法实现这一点。您在问题中添加的分组方法是接近所需内容的正确方法,但无法涵盖默认情况 如果要使用LambdaJ执行所需操作,则必须组合
过滤器
(或选择
)。这里有过滤器的代码:
List<SomeObj> yList = filter(having(on(SomeObj.class).getIndicator(), equalTo("Y")), listOfSomeObjs);
List<SomeObj> nList = filter(having(on(SomeObj.class).getIndicator(), equalTo("N")), listOfSomeObjs);
List<SomeObj> dList = filter(having(on(SomeObj.class).getIndicator(), not(equalTo("Y"))).and(having(on(SomeObj.class).getIndicator(), not(equalTo("N")))), listOfSomeObjs);
Map<String, List<SomeObj>> map = new HashMap<>();
map.put("Y", yList);
map.put("N", nList);
map.put("D", dList);
List yList=filter(具有(on(SomeObj.class).getIndicator(),equalTo(“Y”)),listOfSomeObjs);
List nList=filter(具有(on(SomeObj.class).getIndicator(),equalTo(“N”)),listOfSomeObjs);
List-dList=filter(具有(on(SomeObj.class).getIndicator(),not(equalTo(“Y”)))和(具有(on(SomeObj.class).getIndicator(),not(equalTo(“N”)),someobjs的列表);
Map Map=newhashmap();
map.put(“Y”,yList);
地图放置(“N”,nList);
地图放置(“D”,数据列表);
希望能有所帮助。它解决了您的问题吗?
List<SomeObj> yList = filter(having(on(SomeObj.class).getIndicator(), equalTo("Y")), listOfSomeObjs);
List<SomeObj> nList = filter(having(on(SomeObj.class).getIndicator(), equalTo("N")), listOfSomeObjs);
List<SomeObj> dList = filter(having(on(SomeObj.class).getIndicator(), not(equalTo("Y"))).and(having(on(SomeObj.class).getIndicator(), not(equalTo("N")))), listOfSomeObjs);
Map<String, List<SomeObj>> map = new HashMap<>();
map.put("Y", yList);
map.put("N", nList);
map.put("D", dList);