回答編集履歴
3
修正
answer
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
{
|
44
44
|
return Arrays
|
45
45
|
.stream(args) // 可変長引数 args を Stream に変換
|
46
|
-
.distinct() //
|
46
|
+
.distinct() // 重複した要素を削除([1, 2, 2, 1, 1, 1] → [1, 2])
|
47
47
|
.count() == 1; // 残った要素数が一つであればすべて同じだったと判定
|
48
48
|
}
|
49
49
|
}
|
2
追記
answer
CHANGED
@@ -25,9 +25,37 @@
|
|
25
25
|
|
26
26
|
ジェネリクスを使わないバージョン。
|
27
27
|
|
28
|
+
[Wandbox](https://wandbox.org/permlink/6f3Q9MIMh0BbHSjt)(リンク先に実行結果があります)
|
29
|
+
|
28
30
|
```Java
|
29
|
-
|
31
|
+
import java.util.*;
|
32
|
+
|
33
|
+
class Wandbox
|
30
34
|
{
|
31
|
-
|
35
|
+
public static void main(String[] args)
|
36
|
+
{
|
37
|
+
System.out.println(check(1, 1, 1)); // true
|
38
|
+
System.out.println(check(1, 2, 2, 1, 1, 1)); // false
|
39
|
+
System.out.println(check("abc", "abc", "abc")); // true
|
40
|
+
}
|
41
|
+
|
42
|
+
static boolean check(Object ... args) // 引数がいくつあっても配列として取得できる
|
43
|
+
{
|
44
|
+
return Arrays
|
45
|
+
.stream(args) // 可変長引数 args を Stream に変換
|
46
|
+
.distinct() // 連続した要素を削除([1, 2, 2, 1, 1, 1] → [1, 2, 1])
|
47
|
+
.count() == 1; // 残った要素数が一つであればすべて同じだったと判定
|
48
|
+
}
|
32
49
|
}
|
33
|
-
```
|
50
|
+
```
|
51
|
+
|
52
|
+
### Stream API について
|
53
|
+
|
54
|
+
Stream API は関数型プログラミングの手法を取り入れた、モダンで読みやすく堅牢なプログラミングを可能にする技術です。これからのプログラマーは必ずマスターしましょう。
|
55
|
+
|
56
|
+
むしろ、これが読めないと、今後は老害と呼ばれたり、人よりプログラミング効率が落ちたり仕事が減ったりと、困ったことになります。決して一部の人が誤解しているような、特殊な人が特殊な趣味で使うものではありませんし、新しすぎる尖った手法でもありません。Java 8 から存在し、ごくごく普通に使われているものです。
|
57
|
+
|
58
|
+
参考: [Java 11 時代の Java プログラミングスタイルガイド - Qiita](https://qiita.com/ptiringo/items/71c2792e7c553399c2e2#stream-api)
|
59
|
+
|
60
|
+
> **極力 for 文を使用せず、Stream API によって処理する。**
|
61
|
+
Java 8 での Stream API の出現によって for 文が活躍する機会はほとんどなくなった。Stream API の宣言的な記述はうまく使用すれば可読性が高く、パフォーマンスの観点からも優れるため、例外的な場面を除いてコレクション操作は Stream API によって行うのがよいだろう。
|
1
追記
answer
CHANGED
@@ -19,4 +19,15 @@
|
|
19
19
|
return Arrays.stream(args).distinct().count() == 1;
|
20
20
|
}
|
21
21
|
}
|
22
|
+
```
|
23
|
+
|
24
|
+
# 追記
|
25
|
+
|
26
|
+
ジェネリクスを使わないバージョン。
|
27
|
+
|
28
|
+
```Java
|
29
|
+
static boolean check(Object ... args)
|
30
|
+
{
|
31
|
+
return Arrays.stream(args).distinct().count() == 1;
|
32
|
+
}
|
22
33
|
```
|