TL;DR 空のコレクションに allMatch() 的な判定をするとtrueになるぞ!気をつけろ! 背景 あるリストの全ての要素がとある条件を満たすどうかを返すメソッドがあり、 allMatch(何かしらの条件) した結果をbooleanとして返すという実装になっていた。このメソッドを利用しようとした時、ふと頭に疑問が湧いた。これって、リストが空だったら結果はどうなるんだっけ…? というわけでREPLを開いてちゃちゃっと確認してみたところ、結果はtrueであった。 # 空のリストに対して、「全ての要素が奇数である」という判定をしたら true になる…? jshell> List<Integer> list = List.of(); list ==> [] jshell> list.stream().allMatch(v -> v % 2 != 0); $3 ==> true 直感的には