Java 如何从字符串数组中获取流?

Java 如何从字符串数组中获取流?,java,string,multidimensional-array,java-8,java-stream,Java,String,Multidimensional Array,Java 8,Java Stream,下面是创建字符串数组的语句: String[][] strArr = {{"Jazz","80"},{"sam","90"},{"shaam","80"},{"aditya","100"}}; 是否有可能获得如下流?我在Eclipse中尝试过,但出现了一个错误 Stream<String,String> streamObj = Arrays.stream(strArr); Stream-streamObj=Arrays.Stream(strArr); 尝试在网上搜索,但大多数结

下面是创建字符串数组的语句:

String[][] strArr = {{"Jazz","80"},{"sam","90"},{"shaam","80"},{"aditya","100"}};
是否有可能获得如下流?我在Eclipse中尝试过,但出现了一个错误

Stream<String,String> streamObj = Arrays.stream(strArr);
Stream-streamObj=Arrays.Stream(strArr);
尝试在网上搜索,但大多数结果显示从一维字符串数组中获取流,如下所示:

String[] stringArr = {"a","b","c","d"};
Stream<String> str = Arrays.stream(stringArr);
String[]stringArr={“a”、“b”、“c”、“d”};
Stream str=Arrays.Stream(stringArr);

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

public interface Stream<T> ...
要进一步包装条目而不将其收集到
映射
,可以创建
SimpleEntry的
,如下所示:

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

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

public interface Stream<T> ...
要进一步包装条目而不将其收集到
映射
,可以创建
SimpleEntry的
,如下所示:

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

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

public class PairStream {

    public static void main(String[] args) {
        String[][] strArr = {{"Jazz","80"},{"sam","90"},{"shaam","80"},{"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 + "]";
        }
    }
}
以及你可以使用的


可以定义名为StringPair的POJO并映射流

public class PairStream {

    public static void main(String[] args) {
        String[][] strArr = {{"Jazz","80"},{"sam","90"},{"shaam","80"},{"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 + "]";
        }
    }
}
以及你可以使用的

Arrays.stream(strArr).flatMap(Arrays::stream)
Arrays.stream(strArr).flatMap(Arrays::stream)