我有一个格式为单个字符串:
row1col1 row1col2
row2col1 row2col2
row3col1 row3col2
我想提取每个项目并建立一个具有以下属性的对象数组:
and so on...
new MyObject(row1col1, row1col2);
我是Java 8和流式处理的新手,想知道如何在不使用循环的情况下实现这一点。
通常我会使用 String.split('\n')
将行累积到一个字符串数组中
然后使用循环,对于每一行,在空格分隔符上再次进行拆分,并使用结果数组的两个元素(row1col1 row1col2
)构建我的对象,直到没有更多的行可以处理为止。
像这样:
String sausage = "row1col1 row1col2\nrow2col1 row2col2\nrow3col1 row3col2";
String[] rows = sausage.split("\n");
for (String row : rows) {
String[] objectData = u.split("\\s+");
MyObject myObject = new MyObject(objectData[0], objectData[1]);
myObjectList.add(myObject);
}
有人能解释一下如何使用流实现相同的效果,以及背后的机制是什么让我这样做呢?
当增加元素数量时,这是否是一种有效的思考方式?因为从我所看到的所有示例中,流都专注于过滤、收集或在给定一组元素的情况下,应用某些条件检索一个较小的集合。