Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@DreamHanks

【Java開発】第8回 配列

初めに

皆さん。こんにちは!

DreamHanksの254cmです。

今回は配列について説明していきます。

Java記事のまとめはこちらです。

前回の記事は【Java開発】第7回 継承です。

配列

・配列とは?

同じデータ型の値をまとめて一つの変数として扱うために使うものです。

配列の値は順番に並べていて、特定の位置の値を取り出したりすることもできる

1から5までの値をjavaプログラムで表すと

int value1 = 1;                                                                                                                         
int value2 = 2;                                                                                                                         
int value3 = 3;                                                                                                                         
int value4 = 4;                                                                                                                         
int value5 = 5;

上記のようになります。

上記の場合は変数が5個なので十分表すこどができますが、

100個、1000個を表す場合はかなり難しいし、面倒くさいです。

しかし、上記のサンプルを配列で表すと

int[] numbers = {1, 2, 3, 4, 5};

一つの行で簡単に表すことができました。

・配列の書き方

配列の宣言とインスタンス化

データ型 配列変数名[] = new データ型[要素数];

データ型[] 配列変数名 = new データ型[要素数];

上記のように二つの書き方がありますが、どっちの方法を使用しても構いません。

サンプル

長さが3である整数型配列を宣言して初期化すると、

int values[] = new int[3];

上記のようになります。

他の方法で同じように宣言してみると、

int[] values = new int[3];

上記のようになります。

宣言と同時に初期化

データ型 配列変数名[] = {値1, 値2, ... };

変数の宣言と同じように宣言と初期化を同時に行うことができます。

もちろん、宣言と初期化を別々で行うこともできます。

サンプル

宣言と初期化を同時に行う場合は

int[] foo = {1, 2, 3, 4, 5};

になります。

宣言と初期化を別々で行う場合は

int[] foo = new int[5];

foo = {1, 2, 3, 4, 5};

先ほどのサンプルのように要素を一発で初期化することもできますし、

int[] foo = new int[5];

foo[0] = 1;
foo[1] = 2;
foo[2] = 3;
foo[3] = 4;
foo[4] = 5;

上記のように一つ一つ初期化することもできます。

しかし、普段は上記のようにいちいち書かなく、ループを使って処理します。

・配列のインデクス

配列のインデクスとは配列の要素の位置を表すもの数です。

配列のインデクスは「0から配列の長さ-1」まで存在します。

サンプル

int a[]= {12, 4, 6, 23, 99}; 

上記の配列は長さが5なので、インデクスは0から4まで存在します。

つまり、上記の配列は

インデクス0番目:12
インデクス1番目:4
インデクス2番目:6
インデクス3番目:23
インデクス4番目:99

が格納されています。

・配列の要素の使い方

配列の各要素はインデクスで指定して出します。

書き方

配列変数名[出したい要素のインデクス];

サンプル

int a[]= {12, 4, 6, 23, 99}; 

System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(a[2]);
System.out.println(a[3]);
System.out.println(a[4]);

上記のサンプルを実行してみると、

12
4
6
23
99

上記のようになります。

サンプル2

public class ArraySample {      

    public static void main(String[] args) {    
        String[] colors = {"red","orange","yellow","green","blue","navy","purple"};

        for(int i = 0 ; i < colors.length; i++) {
            System.out.println(colors[i]);
        }
    }   
}       

上記サンプルの実行結果は

red
orange
yellow
green
blue
navy
purple

になります。

上記の結果が逆順で出力されるようにサンプルを修正します。

サンプル3

public class ArraySample {                  

    public static void main(String[] args) {                
        String[] colors = {"red","orange","yellow","green","blue","navy","purple"};         

        for(int i = colors.length -1; i >= 0; i--) {            
            System.out.println(colors[i]);      
        }           
    }               
}                   

出力結果は

purple
navy
blue
green
yellow
orange
red

になります。

サンプル4

public class ArraySample {                      

    public static void main(String[] args) {                    
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};                
        int sum = 0;                

        for(int i = 0; i < arr.length; i++) {               
            if(i == 2) {            
                continue;       
            }   
            sum += arr[i];          
        }   
        System.out.println(sum);                
    }                   
}

上記のサンプルを実行してみると

52

になります。

・length

lengthは配列に内蔵されているメソッドで、配列の長さを返します。

public class Array04 {      

    public static void main(String[] args) {    
        int[] foo = new int[10];
        System.out.println("配列の要素数:" + foo.length);
    }   
}

上記のサンプルを実行してみると

配列の要素数:10

になります。

終わりに

今回の記事は以上になります。

次回はJavaの多次元配列を学びましょう。

私たちの最新の記事はこちらで確認することができます。

ご覧いただきありがとうございます。

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?