Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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 Stream.of?_Java_String_List_Java Stream - Fatal编程技术网

如何从对中提取字符串<;布尔值,字符串>;使用Java Stream.of?

如何从对中提取字符串<;布尔值,字符串>;使用Java Stream.of?,java,string,list,java-stream,Java,String,List,Java Stream,我有一个流您在代码片段中已经拥有的是,函数应用于每个条件。然后,只过滤那些值为true的对象。这似乎与你想要的正好相反。可能会翻转结果,如result->!result.getValue0()?然后,您将需要另一个map操作来获取字符串流而不是对,并需要一个collect操作来连接它们。正如注释中所指出的,请看一看。您的代码片段中已有的是,函数应用于每个条件。然后,只过滤那些值为true的对象。这似乎与你想要的正好相反。可能会翻转结果,如result->!result.getValue0()?然

我有一个
流您在代码片段中已经拥有的是,函数应用于每个条件。然后,只过滤那些值为true的对象。这似乎与你想要的正好相反。可能会翻转结果,如
result->!result.getValue0()
?然后,您将需要另一个
map
操作来获取字符串流而不是对,并需要一个
collect
操作来连接它们。正如注释中所指出的,请看一看。

您的代码片段中已有的是,函数应用于每个条件。然后,只过滤那些值为true的对象。这似乎与你想要的正好相反。可能会翻转结果,如
result->!result.getValue0()
?然后,您将需要另一个
map
操作来获取字符串流而不是对,并需要一个
collect
操作来连接它们。正如评论中指出的,请看一看。

我不确定标准的类型,
列表
函数
。无论什么,你都可以尝试以下两种方法

public static class Pair<F, S> {
    private F first;
    private S second;

    public Pair(F first, S second) {
        this.first = first;
        this.second = second;
    }
}

public static void main(String[] args) {

    // criteria is a function
    Function<String, Pair<Boolean, String>> criteria = (x) -> new Pair<>(true, x);
    Stream.of(criteria)
            .map(func -> func.apply(null))
            .filter(result -> !result.first)
            .map(result -> result.second)
            .collect(Collectors.joining(","));

    // criteria is a list
    List<Function<String, Pair<Boolean, String>>> criterias = new ArrayList<>();
    criterias.stream()
            .map(func -> func.apply(null))
            .filter(result -> !result.first)
            .map(result -> result.second)
            .collect(Collectors.joining(","));
}
公共静态类对{
私人优先;
第二,私营企业;
公共对(F第一,S第二){
this.first=first;
这个秒=秒;
}
}
公共静态void main(字符串[]args){
//标准是一个函数
函数条件=(x)->新对(真,x);
流程(标准)
.map(funct->func.apply(null))
.filter(结果->!结果.第一个)
.map(结果->结果秒)
.collect(收集器。连接(“,”);
//标准是一个列表
列表标准=新的ArrayList();
criterias.stream()
.map(函数->函数应用(空))
.filter(结果->!结果.第一个)
.map(结果->结果秒)
.collect(收集器。连接(“,”);
}

我不确定标准的类型,
列表
函数
。无论什么,你都可以尝试以下两种方法

public static class Pair<F, S> {
    private F first;
    private S second;

    public Pair(F first, S second) {
        this.first = first;
        this.second = second;
    }
}

public static void main(String[] args) {

    // criteria is a function
    Function<String, Pair<Boolean, String>> criteria = (x) -> new Pair<>(true, x);
    Stream.of(criteria)
            .map(func -> func.apply(null))
            .filter(result -> !result.first)
            .map(result -> result.second)
            .collect(Collectors.joining(","));

    // criteria is a list
    List<Function<String, Pair<Boolean, String>>> criterias = new ArrayList<>();
    criterias.stream()
            .map(func -> func.apply(null))
            .filter(result -> !result.first)
            .map(result -> result.second)
            .collect(Collectors.joining(","));
}
公共静态类对{
私人优先;
第二,私营企业;
公共对(F第一,S第二){
this.first=first;
这个秒=秒;
}
}
公共静态void main(字符串[]args){
//标准是一个函数
函数条件=(x)->新对(真,x);
流程(标准)
.map(函数->函数应用(空))
.filter(结果->!结果.第一个)
.map(结果->结果秒)
.collect(收集器。连接(“,”);
//标准是一个列表
列表标准=新的ArrayList();
criterias.stream()
.map(函数->函数应用(空))
.filter(结果->!结果.第一个)
.map(结果->结果秒)
.collect(收集器。连接(“,”);
}

什么是
getValue0()
Pair
是您自定义的类还是来自任何库?关于示例
输入
和您期望的输出如何?@Deadpool您已经编辑了问题,例如代码和要求进一步矛盾,可能需要先用OP澄清。@Deadpool True,
收集器。加入
是在使用流时连接字符串的一个很好的提示,只是问题本身并不清楚共享的代码。@Naman抱歉,我不擅长提问,抱歉不清楚。这对来自org.javatuples。示例输入可以是“ABC”和“XYZ”,输出可以是“ABC,XYZ”。什么是
getValue0()
Pair
是您自定义的类还是来自任何库?关于示例
输入
和您期望的输出如何?@Deadpool您已经编辑了问题,例如代码和要求进一步矛盾,可能需要先用OP澄清。@Deadpool True,
收集器。加入
是在使用流时连接字符串的一个很好的提示,只是问题本身并不清楚共享的代码。@Naman抱歉,我不擅长提问,抱歉不清楚。这对来自org.javatuples。示例输入可以是“ABC”和“XYZ”,输出可以是“ABC,XYZ”