回答編集履歴

3

修正

2019/10/22 16:17

投稿

Zuishin
Zuishin

スコア28662

test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
  .stream(args) // 可変長引数 args を Stream に変換
90
90
 
91
- .distinct() // 連続した要素を削除([1, 2, 2, 1, 1, 1] → [1, 2, 1])
91
+ .distinct() // 重複した要素を削除([1, 2, 2, 1, 1, 1] → [1, 2])
92
92
 
93
93
  .count() == 1; // 残った要素数が一つであればすべて同じだったと判定
94
94
 

2

追記

2019/10/22 16:17

投稿

Zuishin
Zuishin

スコア28662

test CHANGED
@@ -52,14 +52,70 @@
52
52
 
53
53
 
54
54
 
55
+ [Wandbox](https://wandbox.org/permlink/6f3Q9MIMh0BbHSjt)(リンク先に実行結果があります)
56
+
57
+
58
+
55
59
  ```Java
56
60
 
57
- static boolean check(Object ... args)
61
+ import java.util.*;
62
+
63
+
64
+
65
+ class Wandbox
58
66
 
59
67
  {
60
68
 
61
- return Arrays.stream(args).distinct().count() == 1;
69
+ public static void main(String[] args)
70
+
71
+ {
72
+
73
+ System.out.println(check(1, 1, 1)); // true
74
+
75
+ System.out.println(check(1, 2, 2, 1, 1, 1)); // false
76
+
77
+ System.out.println(check("abc", "abc", "abc")); // true
78
+
79
+ }
80
+
81
+
82
+
83
+ static boolean check(Object ... args) // 引数がいくつあっても配列として取得できる
84
+
85
+ {
86
+
87
+ return Arrays
88
+
89
+ .stream(args) // 可変長引数 args を Stream に変換
90
+
91
+ .distinct() // 連続した要素を削除([1, 2, 2, 1, 1, 1] → [1, 2, 1])
92
+
93
+ .count() == 1; // 残った要素数が一つであればすべて同じだったと判定
94
+
95
+ }
62
96
 
63
97
  }
64
98
 
65
99
  ```
100
+
101
+
102
+
103
+ ### Stream API について
104
+
105
+
106
+
107
+ Stream API は関数型プログラミングの手法を取り入れた、モダンで読みやすく堅牢なプログラミングを可能にする技術です。これからのプログラマーは必ずマスターしましょう。
108
+
109
+
110
+
111
+ むしろ、これが読めないと、今後は老害と呼ばれたり、人よりプログラミング効率が落ちたり仕事が減ったりと、困ったことになります。決して一部の人が誤解しているような、特殊な人が特殊な趣味で使うものではありませんし、新しすぎる尖った手法でもありません。Java 8 から存在し、ごくごく普通に使われているものです。
112
+
113
+
114
+
115
+ 参考: [Java 11 時代の Java プログラミングスタイルガイド - Qiita](https://qiita.com/ptiringo/items/71c2792e7c553399c2e2#stream-api)
116
+
117
+
118
+
119
+ > **極力 for 文を使用せず、Stream API によって処理する。**
120
+
121
+ Java 8 での Stream API の出現によって for 文が活躍する機会はほとんどなくなった。Stream API の宣言的な記述はうまく使用すれば可読性が高く、パフォーマンスの観点からも優れるため、例外的な場面を除いてコレクション操作は Stream API によって行うのがよいだろう。

1

追記

2019/10/22 15:34

投稿

Zuishin
Zuishin

スコア28662

test CHANGED
@@ -41,3 +41,25 @@
41
41
  }
42
42
 
43
43
  ```
44
+
45
+
46
+
47
+ # 追記
48
+
49
+
50
+
51
+ ジェネリクスを使わないバージョン。
52
+
53
+
54
+
55
+ ```Java
56
+
57
+ static boolean check(Object ... args)
58
+
59
+ {
60
+
61
+ return Arrays.stream(args).distinct().count() == 1;
62
+
63
+ }
64
+
65
+ ```