Javaの学習で配列の比較をする時、つまずいた部分について記事にしたいと思います。
equalsとdeepEqualsについて
このような配列が二つ存在する場合、配列の要素の数が同じかつ、インデックスの要素が正しいか確認したい時があるかと思います。
int[] a = {85, 78, 92};
int[] b = {85, 78, 92};
Javaの場合、等価演算子で配列の中身を比較することができず、equalsメソッドを使って比較することができます。
//java.util.Arraysのインポートが必要です
import java.util.Arrays;
int[] a = {85, 78, 92};
int[] b = {85, 78, 92};
//aとbの配列を比較し要素数と値が正しければtrueがisEqualに入ります
boolean isEqual = Arrays.equals(a, b);
if (isEqual) {
// 配列が等しい場合の処理
System.out.println("配列は等しいです。");
} else {
// 配列が等しくない場合の処理
System.out.println("配列は等しくありません。");
}
まだ使用したことないですが、多次元配列は、deepEqualsで確認することが可能みたいです。
int[][] array1 = {{1, 2}, {3, 4}};
int[][] array2 = {{1, 2}, {3, 4}};
boolean isEqual = Arrays.deepEquals(array1, array2);
if (isEqual) {
// 配列が等しい場合の処理
System.out.println("配列は等しいです。");
} else {
// 配列が等しくない場合の処理
System.out.println("配列は等しくありません。");
}
使う機会がありましたら使ってみようかなと思います。
PHPは等価演算子のみで配列の中身を確認できる
PHPでは、等価演算子(==)を使用すれば、配列の要素数と値が同一かどうか確認することができます。
index.php
<?php
$fruits1 = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
$fruits2 = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
if ($fruits1 == $fruits2){
echo '等しいです';
} else {
echo '等しくないです';
}
?>
まとめ
PHPを使って2年ほど開発していたので、ついついPHPの書き方で書いてしまいます。
Javaの型宣言はPHPにはないので最初戸惑いましたが、変数に何が入ってるのか分かるので第三者がコードを見た時にすぐに理解できる点がJavaの良い所かなと個人的に思いました。