1

この記事の目次



このページは「配列を扱うメソッド」の演習問題です。「配列を扱うメソッド」の基礎を学びたい方はこちらで参考してください。

1.  配列の全要素の和を求めるメソッド


問題:配列aの全要素の和を求めるメソッドsumOf(int[] a)を作成する

解答例
package helloworld;

public class HelloWorld {
        
    public static void main(String[] args) {

        int[] array = {2,3,4,5};  //配列の宣言と初期化
        
        int sum = sumOf(array);  //配列の和をsumOfメソッドで計算し、sum変数に代入する
        
        System.out.println(sum);
        
    }
    
    public static int sumOf(int[] a){
        
        int sum = 0;  //最初に配列の和を0にする。
        for(int e:a)
            sum +=e;  //配列の全要素を順番に拡張for文で出してsumに足し続ける。
        
        return sum;  //全要素の和を返す。
        
    }
      
}

2.  配列の最小値を求めるメソッド


問題:配列aの要素の最小値を求めるメソッドminOfを作成する

 最大値を求めるメソッドについて詳しく見たい方:

最大値を求めるメソッド

../../../java/java-method-handling-arrays.html?goto=3to1

JAVA言語では配列とメソッドは最も基礎な部分で、開発にたくさん応用されています。この記事では配列を扱うメソッドを紹介します。引数と戻り値・・・
解答例
package helloworld;
   
public class HelloWorld {
         
    public static void main(String[] args) {
        int[] array = {2,5,3,8,3,1};     //配列を宣言し、初期化する
         
        int min = minOf(array);         //minOfメソッドでarrayの最小値を求め、minに代入する
        System.out.println("最大値: " + min);
    }
       
    static int minOf(int[] a) {
        int min = a[0];                 //最初に、配列aの最初の要素を最小値にする
        for(int e:a)
            if (min > e)
                    min = e;            //現在の最小値より小さい値に最小値を更新する
        return min;                     //最小値を戻す
    }
       
}

3.  配列の要素を削除するメソッド


問題:配列aからbと等しい要素を削除するメソッドaryRmv()を作成する

条件 :

  • 削除した要素は配列に存在しない場合に元の配列を返却する。
  • 要素を削除できた場合、その要素の番目より後ろの全要素を1つ前にずらす。それにより、末尾要素の値は0にすること。
  •  配列の要素を削除するについて詳しく見たい方:

    配列の要素を削除する

    ../../../java/java-array-exercises.html?goto=5

    配列とは、同じ型の複数の値をまとめて一つの変数として扱うことができるデータ構造です。この記事では配列の宣言、初期化、追加などの基本操・・・
    解答例
    配列の要素を削除するメソッド
    package helloworld;
       
    public class HelloWorld {
             
        public static void main(String[] args) {
            int[] array = {2,5,3,8,3,1};     //配列を宣言し、初期化する
            
            array = aryRmv(array, 3);        //aryRmvメソッドで配列の3要素を削除し、再びarrayに代入する。
            
            //拡張for文でarrayの全要素を出す
            for(int e:array)
                System.out.print(e + "  ");
                  
        }
           
        static int[] aryRmv(int[] a,int b) {
            //idxと等しい要素を配列から削除する。削除した要素の番目に次の要素を持って来て入れる。
            int i,c;
            for (c = i = 0; i < a.length; i++) {
                if (a[i] != b) {
                    a[c] = a[i];
                    c++;
                }
            }
            
            //余った末尾要素を0にする
            for (i = c; i < a.length; i++) {
                a[i] = 0;
            }
            
            return a; //改造した配列を返す
        }
           
    }

    実行結果:
    2  5  8  1  0  0

    4.  配列の複数の要素を削除するメソッド


    問題:配列aからidx番目の要素を先頭とするn個の要素を削除するメソッドaryRmvNを作成する

    ヒント : 一先ず、配列aのidx番目の要素だけ削除するメソッドを作成して、次にそのメソッドを利用して、idx番目からn個の要素を削除するメソッドを作成する

    解答例
    package helloworld;
       
    public class HelloWorld {
             
        public static void main(String[] args) {
            int[] array = {2,5,3,8,3,1};     //配列を宣言し、初期化する
            
            array = aryRmvIdxN(array, 2,3); //aryRmvidxNメソッドで配列から2番目の要素を先頭とする3個の要素を削除し、再びarrayに代入する。
            
            //拡張for文でarrayの全要素を出す
            for(int e:array)
                System.out.print(e + "  ");
                  
        }
           
        //配列aのidx番目の要素だけ削除するメソッド
        static int[] aryRmvIdx(int[] a,int idx) {
            //idx番目の要素より後ろの全要素を1つ前方にずらす。
            for (int i = idx; i < a.length - 1; i++) {
                a[i] = a[i + 1];
            }
            //余った末尾要素を0にする
            a[a.length - 1] = 0;
            return a; //改造した配列を返す
        }
        
        //配列aからidx番目の要素を先頭とするn個の要素を削除する
        static int[] aryRmvIdxN(int[] a,int idx, int n) {
            for(int i = 1; i<=n; i++){
                aryRmvIdx(a, idx);
            }
            return a; //改造した配列を返す
        }
              
    }

    実行結果:
    2  5  1  0  0  0

    5.  配列に要素を挿入するメソッド


    問題:配列aのidx番目の要素にxを挿入するaryInsを作成する

    解答例
    配列に値を挿入する
    package helloworld;
       
    public class HelloWorld {
             
        public static void main(String[] args) {
            int[] array = {2,5,3,8,3,1};     //配列を宣言し、初期化する
            
            array = aryIns(array, 2,10); //aryInsメソッドで配列から2番目の要素に10を挿入し、再びarrayに代入する。
            
            //拡張for文でarrayの全要素を出す
            for(int e:array)
                System.out.print(e + "  ");
                  
        }
           
        //配列aのidx番目の要素にxを挿入するメソッド
        static int[] aryIns(int[] a,int idx,int x) {
            //idx番目の要素より後ろの全要素を1つ後方にずらす。
            for (int i = idx + 1; i < a.length; i++) {
                a[i] = a[i - 1];
            }
            //余ったidx番目の要素にxを挿入する
            a[idx] = x;
            return a; //改造した配列を返す
        }
        
    }
    

    実行結果:
    2  5  10  3  3  3
    広告