1

この記事の目次



このページは「JAVAのArrayList」の演習問題です。「JAVAのArrayList」の基礎を学びたい方はこちらで参考してください。

1.  最大の要素を検索する


問題:ArrayListを宣言し、要素をキーボードから入力する。ArrayListの中に最大の要素を検索する

解答例
package helloworld;
 
import java.util.ArrayList;
import java.util.Scanner;
 
public class HelloWorld {
       
    public static void main(String[] args) {
         
        ArrayList< Integer > arrListInteger = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        int number; // リストの要素数

        System.out.print("ArrayListの要素数を入力する: ");
        int n = scanner.nextInt();

        //for文でArrayListの要素を入力する:
        for (int i = 0; i < n; i++) {
            System.out.print(i +"番目の要素:");
            number = scanner.nextInt();
            arrListInteger.add(number);
        }

        // リストの最大値を求める
        //デフォルトとしてリストの最初の要素を最大値にする
        int max = arrListInteger.get(0);    

        for (int i = 1; i < arrListInteger.size(); i++) {
            // i番目の要素はmaxより大きければ、maxをi番目の要素に更新する
            if (arrListInteger.get(i) > max) {
                max = arrListInteger.get(i);
            }
        }
        System.out.println("リストの最大値 = " + max);

    }
     
}

実行結果:
ArrayListの要素数を入力する: 5
0番目の要素:3
1番目の要素:6
2番目の要素:1
3番目の要素:2
4番目の要素:4
リストの最大値 = 6

2.  要素が重複でないリストを作る


問題:元のリストの要素を新リストにコピーする。ただし、新リストの要素が重複しないようにする

ヒント : 要素が重複するかはcontainsメソッドで確認する。

 containsで要素の有無を確認するについて詳しく見たい方:

containsで要素の有無を確認する

../../../java/java-collection-arraylist.html?goto=5to3

この記事ではListを実装したクラスの一つであるArrayListを紹介します。ArrayListは大きさが可変という点でたくさんの応用があるので、開発現場でよく・・・
解答例
package helloworld;

import java.util.ArrayList;

public class HelloWorld {
      
    public static void main(String[] args) {
        
        //ArrayListを宣言する
        ArrayList< Integer > arrListInteger = new ArrayList<>();
        //ArrayListに要素を入れる
        arrListInteger.add(1);
        arrListInteger.add(2);
        arrListInteger.add(2);
        arrListInteger.add(3);
        arrListInteger.add(4);
        arrListInteger.add(4);
        arrListInteger.add(5);
        arrListInteger.add(1);
        
        //新ArrayListを作成する、要素型は元のArrayListと一緒である。
        ArrayList< Integer > arrNewList = new ArrayList<>();

        //arrListIntegerの要素を順番に読み出し、
        //その要素はarrNewListにあったかcontainsメソッドで確認する
        //まだ無ければ、arrNewListに入れる
        for (int str : arrListInteger) {
            if (!arrNewList.contains(str)) {
                arrNewList.add(str);
            }
        }

        System.out.print("arrListIntegerの全要素: ");
        System.out.println(arrListInteger);
        System.out.print("arrNewListの全要素: ");
        System.out.println(arrNewList);
        
    }
    
}

実行結果:
arrListIntegerの全要素: [1, 2, 2, 3, 4, 4, 5, 1]
arrNewListの全要素: [1, 2, 3, 4, 5]

3.  要素が重複しないようにリストを整理する


問題:リストを宣言し、初期化する。重複している要素を1つだけに消し残す

条件 : 新しいリストを作成しないこと。

ヒント : リストの中に、1つの要素値に対して、その要素値と等しい要素のインデックス番号をindexOfメソットとlastIndexOfメソッドで求まった結果が違えけば、その要素らは重複している、一致していれば、重複しないとわかります。

 indexOfで要素の位置を検索するについて詳しく見たい方:

indexOfで要素の位置を検索する

../../../java/java-collection-arraylist.html?goto=5to2

この記事ではListを実装したクラスの一つであるArrayListを紹介します。ArrayListは大きさが可変という点でたくさんの応用があるので、開発現場でよく・・・
解答例
package helloworld;

import java.util.ArrayList;

public class HelloWorld {
      
    public static void main(String[] args) {
        
        //ArrayListを宣言する
        ArrayList< Integer > arrListInteger = new ArrayList<>();
        //ArrayListに要素を入れる
        arrListInteger.add(2);
        arrListInteger.add(1);
        arrListInteger.add(2);
        arrListInteger.add(3);
        arrListInteger.add(4);
        arrListInteger.add(4);
        arrListInteger.add(5);
        arrListInteger.add(1);
        
        System.out.print("arrListIntegerの全要素: ");
        System.out.println(arrListInteger);
        
        int i = 0;
        while(i < arrListInteger.size()){
            if(arrListInteger.indexOf(arrListInteger.get(i)) != arrListInteger.lastIndexOf(arrListInteger.get(i))){
                arrListInteger.remove(arrListInteger.lastIndexOf(arrListInteger.get(i)));
            }else{
                i++;
            }
        }
		
        System.out.print("要素が重複でないarrListIntegerの全要素: ");
        System.out.println(arrListInteger);
        
    }
    
}

実行結果:
arrListIntegerの全要素: [2, 1, 2, 3, 4, 4, 5, 1]
要素が重複でないarrListIntegerの全要素: [2, 1, 3, 4, 5]

4.  全要素の和を求める


問題:リストを宣言し、初期化する。for文でリストの全要素の和を計算する

解答例
package helloworld;
 
import java.util.ArrayList;
 
public class HelloWorld {
       
    public static void main(String[] args) {
         
        //ArrayListを宣言する
        ArrayList< Integer > arrListInteger = new ArrayList<>();
        //ArrayListに要素を入れる
        arrListInteger.add(1);
        arrListInteger.add(2);
        arrListInteger.add(3);
        arrListInteger.add(4);
        arrListInteger.add(5);
         
        System.out.print("arrListIntegerの全要素: ");
        System.out.println(arrListInteger);

        // リストの全要素の和を求0める
        int sum = 0;    
        for (int i = 0; i < arrListInteger.size(); i++) {
            sum += arrListInteger.get(i);
        }
        System.out.println("リストの全要素の和 = " + sum);

    }
     
}

実行結果:
arrListIntegerの全要素: [1, 2, 3, 4, 5]
リストの全要素の和 = 15

5.  リストのソートをする


問題:リストを宣言し、初期化する。リストを昇順にソートする

条件 : Collections.sortを利用する方法と二重for文を使う方法をどちらも再現します

 配列のソートについて詳しく見たい方:

配列のソート

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

配列とは、同じ型の複数の値をまとめて一つの変数として扱うことができるデータ構造です。この記事では配列の宣言、初期化、追加などの基本操・・・
解答例
package helloworld;

import java.util.ArrayList;
import java.util.Collections;
 
public class HelloWorld {
       
    public static void main(String[] args) {
         
        //ArrayListを宣言する
        ArrayList< Integer > arrayListInteger = new ArrayList<>();
        //ArrayListに要素を入れる
        arrayListInteger.add(2);
        arrayListInteger.add(1);
        arrayListInteger.add(2);
        arrayListInteger.add(3);
        arrayListInteger.add(4);
        arrayListInteger.add(4);
        arrayListInteger.add(5);
        arrayListInteger.add(1);
         
        System.out.print("元のarrayListIntegerの全要素: ");
        System.out.println(arrayListInteger);
        
        //for文を使う場合に元のリストを新しいリストにコピーする
        ArrayList< Integer > arrayListIntegers2 = new ArrayList<>();
        arrayListIntegers2 = arrayListInteger;
        
        //Collections.sort()メソッドでソートする
        Collections.sort(arrayListInteger);
        System.out.println("Collections.sort()メソッドでソート:" + arrayListInteger);
        
        //二重for文でリストをソートする
        for(int i=0; i < arrayListIntegers2.size() - 1;i++){
            for(int j=i+1; j < arrayListIntegers2.size();j++){
                if(arrayListIntegers2.get(i) > arrayListIntegers2.get(j)){
                    int x=arrayListIntegers2.get(i);
                    arrayListIntegers2.set(i, arrayListIntegers2.get(j));
                    arrayListIntegers2.set(j, x);
                }
            }
        }
        System.out.println("二重for文ででソート:" + arrayListIntegers2 );

    }
     
}

実行結果:
元のarrayListIntegerの全要素: [2, 1, 2, 3, 4, 4, 5, 1]
Collections.sort()メソッドでソート:[1, 1, 2, 2, 3, 4, 4, 5]
二重for文ででソート:[1, 1, 2, 2, 3, 4, 4, 5]
広告