2021.09.24
配列の値が全て同じか?
判定方法について
配列に格納されている値が全部同じであるかを調べるプログラムを紹介します。
7, 7, 7, 7, 7, 7
7, 7, 7, 4, 7, 7
ここからは、配列の値が同じかどうかを判定する処理を説明していきます。
Javaソースコード
AllEqual1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040
public class AllEqual1 { // 配列の全ての値が同じかを調べるメソッド public static boolean isEqual( int[] ary ) { // 配列がnullの場合、nullを戻す if ( null == ary ) return false; // 要素数が1未満の場合、falseを戻す if ( 1 > ary.length ) return false; // 要素数が1の場合、trueを戻す if ( 1 == ary.length ) return true; // 配列の先頭の値ary[0]と違う値が配列に存在すればfalseを戻す for ( int i = 1; i < ary.length; i++ ) { if ( ary[ 0 ] != ary[ i ] ) return false; } return true; } // メイン public static void main( String[] args ) { // 配列を作成 int[] ary1 = { 1, 2, 3, 4, 5 }; int[] ary2 = { 5, 5, 5, 5, 5 }; // 配列ary1の値が全て同じかをチェック if ( isEqual( ary1 ) ) System.out.println( "ary1の値は全て同じ" ); else System.out.println( "ary1の値は全て同じではない" ); // 配列ary2の値が全て同じかをチェック if ( isEqual( ary2 ) ) System.out.println( "ary2の値は全て同じ" ); else System.out.println( "ary2の値は全て同じではない" ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis AllEqual1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac AllEqual1.java
実行
C:\talavax\javasample>java AllEqual1
実行結果
ary1の値は全て同じではない ary2の値は全て同じ
Javaソースコードの解説
002 003 004
// 配列の全ての値が同じかを調べるメソッド public static boolean isEqual( int[] ary ) {
005 006
// 配列がnullの場合、nullを戻す
if ( null == ary ) return false;
008 009
// 要素数が1未満の場合、falseを戻す
if ( 1 > ary.length ) return false;
011 012
// 要素数が1の場合、trueを戻す
if ( 1 == ary.length ) return true;
014 015
// 配列の先頭の値ary[0]と違う値が配列に存在すればfalseを戻す for ( int i = 1; i < ary.length; i++ ) {
016
if ( ary[ 0 ] != ary[ i ] ) return false;
018
return true;
以上です。