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)