2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Java 配列

Last updated at Posted at 2019-07-09

##学習ログ

###配列
配列とは同一種類の複数データを並び順で格納するデータ構造。
配列の各要素には同一種類のデータしか格納できない。
配列の要素は0から始まる。
配列も変数と同様にデータ型を指定する。

配列変数の作成宣言
要素の型[] 配列変数名

//例
int[] score;         //scoreをint型の配列変数として宣言。
score = new int[5];  //配列変数scoreにnew演算子で生成したint型の要素を5つ代入している。

//配列変数の宣言と要素の作成と代入は同時に行うことも可能
int[] score = new int[5];  

//配列の中の要素を取り出す方法
score[0]; //配列変数scoreの中の1番目の要素を取得

//配列内の要素を変更する
score[0] = 50; //配列変数scoreの中の1番目の要素に30という値を代入することができる

//配列の要素数の取得
score.length; //配列変数にlengthというメソッドを使用すると配列内の要素の数を取得できる。
//lengthメソッドは文字列にも使用できる。String型変数名.length()という形になる。

//配列の省略記法
int[] score1 = new int[] {10, 20, 30, 40, 50};
int[] score2 = {10, 20, 30, 40, 50};

####配列をforループで回す

//従来のfor文
for(int i = 0; i < 配列変数名.length; i++) {
  処理..
}
//従来のfor文 例
public class Main {
  public static void main(String[] args) {
    int[] score = {20, 30, 40, 50, 60};
    for(int i = 0; i < score.length; i++) {
      System.out.println(score[i]);
    }
  }
}

//拡張for文
for(要素の型 任意の変数名:配列変数名) {
  処理..
}
//拡張for文 例
public class Main {
  public static void main(String[] args) {
    int[] score = {20, 30, 40, 50, 60};
    for(int value : score) {
      System.out.println(value);
    }
  }
}

####メモリ変数と配列
コンピュータは使用するデータをメモリに記録する。
メモリの中は碁盤の目のように区画整理されており、各区画には住所(アドレス)が振られている。
そして変数を宣言すると、空いている区画(どこが選ばれるかはわからない)を変数のために確保する(変数の型によって何区画を使用するか異なる)。
変数に値を代入するとは、確保していた区画に値を記録することである。

public class Main {
  public static void main{String[] args) {
    int[] a = {1, 2, 3};
    int[] b = b;
    b = a;
    b[0] = 100;
    System.out.println(a[0]); //100と出力される
  }
}

####ガベージコレクション
javaの仕組みの一つ。
実行中のプログラムが生み出したメモリ上のゴミ(=どの変数からも参照されなくなったメモリ領域)を自動的に探し出して片付けてくれる。

####NULL
「何もない」という意味。
nullが代入されると、参照型の変数はどこも参照していない状態になる。
・int[]型などの参照型変数に代入すると、その変数は何も参照しなくなる。
・int型などの基本型変数には代入することができない。

int[] score = {1,2,3}
score = null;
score[0];

####2次元配列
2次元配列とは要素が縦横に並んでいるイメージ。

[0][0] [0][1] [0][2] [0][3]
[1][0] [1][1] [1][2] [1][3]
[2][0] [2][1] [2][2] [2][3]
//2次元配列の宣言
要素の型[][] 配列変数名 = new 要素の型[行数][列数]

//2次元配列の要素の取得
配列変数名[行の添字][列の添字]
//例
int[][] scores = new int[2][3]; //2行3列の配列
scores[0][0] = 40;
scores[0][1] = 50;
scores[0][2] = 60;
scores[1][0] = 70;
scores[1][1] = 80;
scores[1][2] = 90;
System.out.println(scores[1][1]); //80
2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?