1. リスト(ArrayList)


演習 4-1 (個人): 以下のソースコードで定義されている String 型のリスト list の 0 番目と 2 番目の要素を連結した文字列を String 型の変数 str に代入して表示してみましょう。

import java.util.ArrayList;

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

    	ArrayList<String> list = new ArrayList<String>();

    	list.add( "hoge" );
    	list.add( "fuga" );
    	list.add( "piyo" );

        System.out.println(list);

        // ここから演習
        // ? を置き換える
        String str = ? ;
        System.out.println(str);
    }
}

結果:

[hoge, fuga, piyo]
hogepiyo

フォルダ「JAVABSC_4_1」を新規作成し、その中に移動します
フォルダ「JAVABSC_4_1」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。


演習 4-2 (個人): 以下のソースコードで定義されている String 型のリスト list の最後の要素だけを表示してみましょう。ただし size() 関数を使ってください。

import java.util.ArrayList;

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

    	ArrayList<String> list = new ArrayList<String>();

    	list.add( "hoge" );
    	list.add( "fuga" );
    	list.add( "piyo" );

        System.out.println(list.size());

        // ここから演習
        // ? を置き換える
        int last = ? ; // list.size()を使って最後の要素の位置を求める
        System.out.println( list.get( last ) );
    }
}

結果:

3
piyo

フォルダ「JAVABSC_4_2」を新規作成し、その中に移動します
フォルダ「JAVABSC_4_2」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。


演習 4-3 (個人): 以下のソースコードで定義されている String 型のリスト list を最後の要素から最初の要素まで for ループを使って逆順に表示して下さい。

import java.util.ArrayList;

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

    	ArrayList<String> list = new ArrayList<String>();

    	list.add( "hoge" );
    	list.add( "fuga" );
    	list.add( "piyo" );

        System.out.println(list.size());

        // ここから演習
        // ? を置き換える
        int last = ? ; // list.size()を使って最後の要素の位置を求める
        for( int i=last; i>=0; --i ){
                System.out.println( ? );
        }
    }
}

結果:

3
piyo
fuga
hoge

フォルダ「JAVABSC_4_3」を新規作成し、その中に移動します
フォルダ「JAVABSC_4_3」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。


2. マップ(HashMap)


演習 4-4 (個人): 以下のソースコードで定義されているマップ map のキーは科目名、値は得点を表しています。"英語"と"数学"の得点の合計を求めて表示して下さい。

import java.util.HashMap;

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

    	HashMap<String, Integer> map = new HashMap<String, Integer>();

        map.put( "国語", 10 );
        map.put( "英語", 20 );
        map.put( "理科", 30 );
        map.put( "数学", 40 );

        System.out.println(map);

        // ここから演習
        // ? を置き換える
        int goukei = ? ;
        System.out.println( goukei ); 
    }
}

結果:

{理科=30, 国語=10, 数学=40, 英語=20}
60

フォルダ「JAVABSC_4_4」を新規作成し、その中に移動します
フォルダ「JAVABSC_4_4」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。


演習 4-5 (個人): 以下のソースコードで定義されているマップ map にループ内で3回キー(文字列)と値(整数)の組をキーボードから読み込んで map に追加し、それらを表示して下さい。

import java.util.Scanner;
import java.util.HashMap;

public class Main{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
    	HashMap<String, Integer> map = new HashMap<String, Integer>();

        // ここから演習
        // ? を置き換える
        for( int i=0; i<3; ++i ){
                String key = ? ;// 文字列読み込み(復習)
                Integer value = ?  ; // 整数読み込み(復習)
                ? ; // map にキーと値を追加
        }
        System.out.println(map);
    }
}

結果:

hoge
12
fuga
34
piyo
56

と入力したとき

{hoge=12, fuga=34, piyo=56}

フォルダ「JAVABSC_4_5」を新規作成し、その中に移動します
フォルダ「JAVABSC_4_5の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。


3. 拡張 for 文


演習 4-6 (個人): 以下のソースコードで使われている通常の for 文を拡張 for 文を使うように書き換えて下さい。

import java.util.ArrayList;

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

    	ArrayList<Integer> list = new ArrayList<Integer>();

    	list.add( 4 );
    	list.add( -3 );
    	list.add( 5 );

        int goukei = 0;

        // ここから演習
        // 拡張 for 文を使って合計を求める
        for( int i = 0; i < list.size(); ++i ){
            goukei += list.get(i);
        }

        System.out.println( goukei ); 
    }
}

結果:

6

フォルダ「JAVABSC_4_6」を新規作成し、その中に移動します
フォルダ「JAVABSC_4_6」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。


4. ソート


演習 4-7 (個人): Integer 型のリストに -10 から 10 までの整数の乱数を20個追加し、それらを昇順ソートしてみましょう。

import java.util.ArrayList;
import java.util.Collections;

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

    	ArrayList<Integer> list = new ArrayList<Integer>();

        // -10 から 10 までの整数の乱数を list に 20 個追加する
        for(int i=0;i<20;++i){
            ?
        }

        System.out.println( "ソート実行前" );
        System.out.println( list );

        // 昇順ソート実行
        ?

        System.out.println( "昇順ソート実行後" );
        System.out.println( list );
    }
}

結果:

※ 乱数なので実行するたびに値が変わる

ソート実行前
[-5, -8, 2, -4, -5, -8, -10, 8, 7, 3, -9, 1, 3, 1, 10, -2, 0, 3, 0, -6]
昇順ソート実行後
[-10, -9, -8, -8, -6, -5, -5, -4, -2, 0, 0, 1, 1, 2, 3, 3, 3, 7, 8, 10]


フォルダ「JAVABSC_4_7」を新規作成し、その中に移動します
フォルダ「JAVABSC_4_7」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。