Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在默认情况下使用lambdaj组_Java_Lambdaj - Fatal编程技术网

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);