[Java] Compare関数を使う方法
こんにちは。明月です。この投稿はjavaでcompare関数を使う方法に関する説明です。javaで値を比較する関数で「equals」関数があります。このequals関数はobjectタイプにあり、全てのデータタイプで使うことができる関数です。でもequals関数はただデータ値が同じか同じじゃないかと判断だけできるし、比較データがどっちがもっと大きいかは知ることができません。もちろんif関数で「if (a > b) else if (a < b) else」でチェックしてもいいですが、少し品格があるように実装することはcompare関数を利用することがあります。integerタイプでcompare関数のパラメータ基準で初めのパラメータをa、2つ目のパラメータをbと考えましょう。aがbより小さいなら「-1」、同じなら「0」、大きいなら「1」の結果が出ます。つまり<=>順で-1,0,1の結果です。integerではなくdateタイプで比較しましょう。dateタイプもクラスにcompare関数がありますが、今回はインスタンスから比較するcompareto関数を使用しました。comparetoの場合は、インスタンス変数がa、パラメータデータがbと考えましょう。aがbより前日なら「-1」、同日なら「0」、後日なら「1」の結果が出ます。つまり<=>順で-1,0,1の結果です。compare関数は比較対象が比較値に比べてデータが小さいなら「-1」、同じなら「0」、大きいなら「1」の結果が出ます。つまり<=>順で-1,0,1の結果です。このパターンをよく覚えばソート式や様々なアルゴリズムを組み立てる時、ソースが簡単に実装することができます。ここまでjavaでcompare関数を使う方法に関する説明でした。ご不明なところや間違いところがあればコメントしてください。