如何从String数组中获取Stream?

我有以下声明创建String数组的数组:

activity

是否可以按以下方式获取信息流?我在eclipse中尝试过,但出现错误。

String[][] strArr = {{"Jazz","80"},{"sam","90"},{"shaam",{"aditya","100"}};

试图通过网络进行搜索,但是大部分结果显示都是从一维字符串数组中获取流,如下所示:

Stream<String,String> streamObj = Arrays.stream(strArr);
moonpig_dty 回答:如何从String数组中获取Stream?

对于Stream<String,String>类,没有可行的表示形式,例如java.util.stream.Stream,因为其通用实现依赖于单个类型,例如声明为:

public interface Stream<T> ...

您仍可能collect Map<String,String>中的键值对Map<String,String> map = Arrays.stream(strArr) .collect(Collectors.toMap(s -> s[0],s -> s[1])); 映射为:

Map

要仅将条目进一步包装而不将其收集到Stream中,可以创建SimpleEntry的{​​{1}},如下所示:

Stream<AbstractMap.SimpleEntry<String,String>> entryStream = Arrays.stream(strArr)
        .map(sub -> new AbstractMap.SimpleEntry<>(sub[0],sub[1]));
,

您可以定义一个名为StringPair的POJO并映射流。

public class PairStream {

    public static void main(String[] args) {
        String[][] strArr = {{"Jazz","80"},{"sam","90"},{"shaam",{"aditya","100"}};
        Arrays.stream( strArr ).map( arr -> new StringPair(arr) ).forEach( pair -> System.out.println(pair) );
    }

    private static class StringPair {
        private final String first;
        private final String second;

        public StringPair(String[] array) {
            this.first = array[0];
            this.second = array[1];
        }
        @Override
        public String toString() {
            return "StringPair [first=" + first + ",second=" + second + "]";
        }
    }
}

以及您可以使用的Apache Commons lang Pair

public class PairStream {

    public static void main(String[] args) {
        String[][] strArr = {{"Jazz","100"}};
        Arrays.stream( strArr ).map( arr -> Pair.of(arr[0],arr[1]) ).forEach( pair -> System.out.println(pair) );
    }


}
本文链接:https://www.f2er.com/3123084.html

大家都在问