回答編集履歴

2

typo

2020/02/05 13:26

投稿

shiketa
shiketa

スコア3971

test CHANGED
@@ -16,17 +16,17 @@
16
16
 
17
17
  .mapToObj(i ->
18
18
 
19
- new ArrayList<>(
19
+ IntStream.rangeClosed(1, 3)
20
20
 
21
- IntStream.rangeClosed(1, 3)
21
+ .mapToObj(num -> Integer.valueOf(i * num))
22
22
 
23
- .mapToObj(num -> Integer.valueOf(i * num))
23
+ .collect(Collectors.toList()
24
24
 
25
- .collect(Collectors.toList())
26
-
27
- )
25
+ )
28
26
 
29
27
  )
28
+
29
+ .map(ArrayList::new)
30
30
 
31
31
  .collect(Collectors.toList());
32
32
 
@@ -71,3 +71,37 @@
71
71
  .mapToObj(i ->
72
72
 
73
73
  ```
74
+
75
+
76
+
77
+ ---
78
+
79
+
80
+
81
+ 余談ですが、StreamAPIを使い始めて、collectとか使わなくちゃいけなくて、なんかめんどうくさいなぁ、とおもいはじめてKotlinをみると、ラクそうにみえてくるとおもいます。
82
+
83
+
84
+
85
+ ```kotlin
86
+
87
+ fun main(args: Array<String>) {
88
+
89
+ val data: List<MutableList<Int>> =
90
+
91
+ (0..3).map { i ->
92
+
93
+ (1..3).map { num -> num * i }.toMutableList()
94
+
95
+ }
96
+
97
+ println(data)
98
+
99
+
100
+
101
+ data.forEach { it.add(999) }
102
+
103
+ println(data)
104
+
105
+ }
106
+
107
+ ```

1

typo

2020/02/05 13:26

投稿

shiketa
shiketa

スコア3971

test CHANGED
@@ -48,11 +48,7 @@
48
48
 
49
49
 
50
50
 
51
- `data.forEach(it -> it.add(999));`は、`data.stream().forEach(it -> it.add(999));`
51
+ `data.forEach(it -> it.add(999));`は、`data.stream().forEach(it -> it.add(999));`の短縮形|省略形だと捉えてみてはどうでしょうか?forEach()メソッドもStreamAPIの一部だ、と。ただ、forEach()メソッドの中身をみると実際の実装は違うようですけれど。
52
-
53
- の短縮形|省略形だと捉えてみてはどうでしょうか?
54
-
55
- forEach()メソッドの中身をみると実際の実装は違いますけれど。
56
52
 
57
53
 
58
54
 
@@ -60,11 +56,7 @@
60
56
 
61
57
 
62
58
 
63
- 問題はないとおもいます。
64
-
65
- だたとえば、StreamAPIを使うとparallel()を挟むだけで簡単に並列処理ができたりしますね
59
+ たとえば、StreamAPIを使うとparallel()を挟むだけで簡単に並列処理ができたりしますね(この程度の処理ではむしろ効率悪くなりますけど)。
66
-
67
- (この程度の処理ではむしろ効率悪くなりますけど)。
68
60
 
69
61
 
70
62