回答編集履歴

2

printfに変更。再帰をやってみた。

2021/06/05 20:53

投稿

xebme
xebme

スコア1090

test CHANGED
@@ -30,13 +30,13 @@
30
30
 
31
31
  String lines = Stream.of(a)
32
32
 
33
- .map(l -> IntStream.of(l).mapToObj(String::valueOf).collect(joining(" ")))
33
+ .map(l -> IntStream.of(l).mapToObj(String::valueOf).collect(joining(" ","",System.lineSeparator())))
34
34
 
35
- .collect(joining(System.lineSeparator()));
35
+ .collect(joining());
36
36
 
37
37
 
38
38
 
39
- System.out.println(lines);
39
+ System.out.printf("%s",lines);
40
40
 
41
41
 
42
42
 
@@ -81,3 +81,39 @@
81
81
 
82
82
 
83
83
  最初のコードのほうが率直で良いと思いますが、collectを理解すると様々な応用が可能になります。
84
+
85
+
86
+
87
+ **再帰させたらどうなる(追記)**
88
+
89
+
90
+
91
+ 再帰させてみました。昇順と降順でちょっとだけ違います。
92
+
93
+
94
+
95
+ ```Java
96
+
97
+ static Function<int[],String> arrayRow = a -> IntStream.of(a).mapToObj(String::valueOf).collect(joining(" ","",System.lineSeparator()));
98
+
99
+
100
+
101
+ static String asc(int[][] a, int i) {
102
+
103
+ return (i>= a.length) ? "" : arrayRow.apply(a[i]) + asc(a,i+1);
104
+
105
+ }
106
+
107
+
108
+
109
+ static String desc(int[][] a, int i) {
110
+
111
+ return (i>= a.length) ? "" : desc (a,i+1) + arrayRow.apply(a[i]);
112
+
113
+ }
114
+
115
+ ```
116
+
117
+
118
+
119
+ それから、printlnをprintfに変更しました。

1

joining()にsuffixを指定できる

2021/06/05 20:53

投稿

xebme
xebme

スコア1090

test CHANGED
@@ -66,7 +66,11 @@
66
66
 
67
67
  StringBuffer::new,
68
68
 
69
+ (s,l) -> s.append(
70
+
69
- (s,l) -> s.append(IntStream.of(l).mapToObj(String::valueOf).collect(joining(" ")) + System.lineSeparator()),
71
+ IntStream.of(l).mapToObj(String::valueOf).collect(joining(" ","",System.lineSeparator()))
72
+
73
+ ),
70
74
 
71
75
  (x,y) -> x.append(y))
72
76
 
@@ -76,4 +80,4 @@
76
80
 
77
81
 
78
82
 
79
- 最初のコードが率直で良いと思いますが、collectを理解すると様々な応用が可能になります。
83
+ 最初のコードのほうが率直で良いと思いますが、collectを理解すると様々な応用が可能になります。