TxKxZxWx's blog

AWS SAA、Javaの学習

Java学習 7日目 「絶対値」「nまでの和」「配列」「拡張for文」「ArrayListクラス」

・「絶対値を取得する(absメソッド)」

 

Mathクラスのabsメソッドで、絶対値を取得することができる。

以下のように記述すると、標準入力で取得した値が-10, -300などの場合10, 300と絶対値に変換される。

 

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println(Math.abs(num));

 

 

 

・「nまでの和」

 

ある 2 以上の整数 n が与えられます。

1から n までの 1 ずつ増加する数列の和を出力してください。

例:

10が入力された場合(1+ 2+ 3+ 4+ 5+ 6+ 7+ 8+ 9+ 10)となり55が出力される。

 

Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++){
  sum += i;
}
System.out.println(sum); 

 

 

 

「配列」

 

配列とは複数のデータをひとまとめにする変数のセットのようなもの。

fruitsという箱に"りんご","みかん","いちご","メロン","バナナ"を格納し、

fruits[2]などで呼び出すイメージ。

番号は0から始まる。

 

配列の記述法:

String team = {"戦士", "忍者"};

 

配列の出力法:

System.out.println(team[0]);

 

以下のように変数を格納し、呼び出すこともできる。

String player_1 = "勇者";
String team = {"戦士", "忍者", player_1};
System.out.println(team[2]);

 

 

例題:

演習課題「配列の中身を出力してみよう」

 

String array = {"戦士","侍","僧侶","魔法使い"};
for (String menber : array)
System.out.println(menber);

⬇︎

戦士

僧侶
魔法使い

 

RPGパーティーが入ったarrayという配列を拡張for文でmenberに入れ全て出力。

 

拡張for文

配列やコレクションと呼ばれる複数の要素を持っているものから全ての要素に含まれる値を順に取り出して処理できる。

 

 

String team = {"戦士", "忍者"}; は以下のように書き換えることもできる。

String team;
team = new String[2];
team[0] = "戦士";
team[1] = "忍者";

 

 

「配列の要素を変数で取り出す」

int num = 0;
String team = {"戦士", "忍者"};
System.out.println(team[num]);
System.out.println(team[num + 1]);

 

num = 0となるので1番目に戦士、2番目に忍者が出力される。

 

 

 

「ループで配列を処理する」

 

配列にループ処理を組み合わせる。

 

・配列の長さを調べる

以下の記述で配列の中に入っている要素の数がわかる。

 

String team = {"勇者", "戦士", "魔法使い"};
System.out.println(team.length);

 ⬇︎

3

 

 

・ループで配列を出力する

以下の記述をすると要素の中身が出力できる。

 

String team = {"勇者", "戦士", "魔法使い"};
for (int i = 0; i < team.length; i++) {
System.out.println(team[i]);
}

⬇︎

勇者

戦士

魔法使い

 

 

例題:

「要素を合計を計算してみよう」
numbers配列に数値が格納されています。
この全要素の合計値を計算して出力してください。

 

期待する値:

270

 

 

解答:

int numbers = {12, 34, 56, 78, 90};
int sum = 0;
for (int i = 0; i < numbers.length; i++) {
  sum += numbers[i];
}
System.out.println(sum);

 

 

解説:

配列内のデータ(整数値、実数値)の合計を求めるのは、forループでデータを1つずつ加算してやる必要がある。

12, 34, 56と順に取り出されていって、それがsum変数に蓄積されていくイメージ。

 

 

 

「拡張for文」

上でも出てきたが拡張for文とは、配列やコレクションと呼ばれる複数の要素を持っているものから全ての要素に含まれる値を順に取り出して処理できる。

 

先ほどの例題を拡張for文を使用し書き直すと以下のようになる。

int numbers = {12, 34, 56, 78, 90};
int sum = 0;
for (int i : numbers) {
sum += i;
}
System.out.println(sum);

 

 

 

「ArrayListクラス」

ArrayListクラスは、配列の要素を後から変更、追加、削除などすることができる。

 

 

  • 「ArrayListを作成する」

    import java.util.*;
    ArrayList<String> team = new ArrayList<String>();

 

 

  • 「ArrayListの要素を追加する」 - addメソッド

    team.add("勇者");
    team.add("魔法使い");

 

 

  • 「ArrayListの要素を個別で取り出して出力する」 - getメソッド

    System.out.println(team.get(0));

 

 

  • 「ArrayListの要素をループで出力する」

    for (String member : team) {
    System.out.println(member);
    }

 

 

  • 「ArrayListのサイズを出力する」- sizeメソッド

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



  • 「ArrayListの要素を更新する」 - setメソッド

    team.set(1, "忍者");



  • 「ArrayListの要素を削除する」 - removeメソッド

    team.remove(1);

 

 

 

 

 

ーーーーーーーーーーーーーーーーーーーー

「本日学んだこと 」

 

  • absメソッド

    Mathクラスのabsメソッドで、絶対値を取得することができる。

     

  • 配列

    配列とは複数のデータをひとまとめにする変数のセットのようなもの。

     

    String[] team = {"戦士", "忍者"};

    System.out.println(team[0]);



  • 拡張for文
    配列やコレクションと呼ばれる複数の要素を持っているものから全ての要素に含まれる値を順に取り出して処理できる。

    for (String menber : array)


  • ArrayListクラス

    ArrayListクラスは、配列の要素を後から変更、追加、削除などすることができる。

     
    import java.util.*;
    ArrayList<String> team = new ArrayList<String>();


    addメソッド ⇨ 要素を追加する。
    getメソッド ⇨ 個別で取り出して出力する。
    sizeメソッド ⇨ サイズを出力する。
    setメソッド ⇨ 要素を更新する。
    removeメソッド ⇨ 要素を削除する。