Java

【初心者向け】Javaの配列について一挙解説!配列の操作方法がわかる!

「Javaの配列がよくわからない。配列の宣言の仕方とか、操作方法とか、全部一括でまとまっているサイトが見つからない」

本記事ではこのような悩みにお応えします。

Javaの配列って難しいですよね。これまで1つのデータを1つの変数で扱っていたのに、急に配列で複数のデータを扱うとなると、混乱するのも無理はありません。

ですか、Javaを学習するうえで配列は避けては通れないもの。配列を扱わないプログラムはほとんどありません。配列をしっかり覚えておかないと、将来プログラマーとして働くときにも苦労することになるでしょう。

そこで本記事ではJavaの配列について初心者でもわかるように1から解説していきます。
配列の宣言方法はもちろん、配列にデータを追加したりソートしたりする方法まで解説していきますよ。

本記事を読むだけで、Javaの配列に関することはひと通り理解できるようになっています。Javaの配列がよくわからない方は、ぜひこの機会にマスターしてしまいましょう!

配列とは

配列とは、複数の値を1つにまとめて扱うことができるものです。

みなさんはこれまで「変数」というものを使って値を操作していたかと思います。
たとえば次のようにして変数に数値などを格納していましたよね?

int num1 = 1;

しかし、もし扱う数値が1つではなく10個あったらどうでしょうか? こんなときに、次のようにコードを記述するのはあまりよくありません。

int num1 = 1;
int num2 = 2;
int num3 = 3;
int num4 = 4;
int num5 = 5;
int num6 = 6;
int num7 = 7;
int num8 = 8;
int num9 = 9;
int num10 = 10;

ご覧の通り、ソースコードの行数が増えてしまいますよね。行数が増えるとコードが読みにくくなってしまい、あまり良くないとされています。

また、変数を10個も使わねばならず、とても非効率的です。たとえば、それぞれの変数に値を代入したい場合、10個すべてに対して代入文を書かなくてはいませんよね。

このような問題を解決するのが配列というわけです。

配列を使えば、上の10行のコードをたった1行で書き表すことができて、非常に効率よく記述することができます。
このように、複数のデータを1つの変数に格納できる仕組みを配列と呼んでいるのです。

配列の基本的な使い方

配列とは何か、ご理解頂けたでしょうか?
それでは、続いて配列の基本的な使い方について解説していきます。配列の宣言方法や初期化のやり方について見ていきましょう。

配列の宣言

配列を使うには、まずは宣言をしないといけません。これは通常の変数の場合と同じですね。
配列を宣言するには、次のように記述してください。

型名[] 配列名;

具体的には、次のように書くことになります。

int[] num;

このように書くことで配列を宣言することができます。

通常の変数を宣言するときとは違い、型名の後ろに[] を付けてください。[] を付けることで、プログラム側に「これは配列ですよ」と指定することができるのです。

初期化

続いて配列の初期化の方法を見ていきましょう。配列を初期化する場合は、次のように記述してください。

int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

このように{}の中にカンマ区切りで配列に格納したい値を記述していきます。

上の例では数値データを格納していますが、文字列データを格納する場合もまったく同じことです。

String[] name ={“田中”, “佐藤”, “鈴木”};

こうすることにより、配列の初期化が完了します。

なお、まだ配列にデータを入れたくない場合は、次のようにして初期化しましょう。

int[] num = new int[3];

このようにすることで空の配列を作成できます。ただし、空の場合でも「配列に何個のデータを入れるか」は指定しないといけません。
この例ではint[3]とすることでデータを3つ入れることを指定しています。

空の配列にデータを入れるには、次のようにしましょう。

int[] num = new int[3];

num[0] = 2;
num[1] = 3;
num[2] = 4;

配列のデータを出力

続いて、配列に格納したデータをコマンドプロンプト上に出力する方法を見ていきましょう。
配列のデータを出力するときは、次のようにしてください。

public class test{
     public static void main(String[] args){
        String[] name ={“田中”, “佐藤”, “鈴木”};
        System.out.println(name[0]);
        System.out.println(name[1]);
        System.out.println(name[2]);
     }
}

◯実行結果

Documents $ 1javac test.java
Documents $ 1java test.java
田中
佐藤
鈴木
Documents $ 1

いつもと同じように、System.out.printlnを使用します。System.out.printlnの中に配列名を入れ、[]の中にデータの番号を入れてください。

ここで、データの番号は0から数えることに注意してください。今の場合は0番目のデータが「田中」になり、1番目のデータが「佐藤」になります。

このように、データの番号を指定することで、配列からデータを取り出して出力することが可能です。

まだ、配列のデータをすべて取り出したいときは、for文を使うのが便利です。

public class test{
     public static void main(String[] args){
        String[] name ={“田中”, “佐藤”, “鈴木”};
        for (int i = 0; i < 3; i++) {
            System.out.print(name[i] + “,”);
        }
     }
}

◯実行結果

Documents $ 1javac test.java
Documents $ 1java test.java
田中,佐藤,鈴木,Documents $ 1

配列の要素数分だけfor文でループを回し、System.out.printで1つずつ出力しています。このやり方はよく使うので覚えておいてくださいね。

配列の応用的な使い方

ここまで配列の基本的な使い方を解説してきました。ここからは配列の応用的な使い方を見ていきます。
具体的には、次のようなやり方を学んでいきましょう。

  • 配列の要素数を確認する方法
  • 配列を文字列に変換する方法
  • 配列に要素を追加する方法
  • 配列の要素をソートする方法
  • 配列を結合する方法

ひとまずこれらのやり方を押さえておけば、配列を扱うときに戸惑うことが少なくなりますよ。

それでは1つずつ丁寧に解説していきますね。

配列の要素数を確認する方法

配列にデータが何個入っているか確認する方法を解説します。

要素数を確認するには、lengthメソッドを使うのがもっとも効率的です。lengthメソッドは次のように使います。

public class test{
     public static void main(String[] args){
        String[] name ={“田中”, “佐藤”, “鈴木”};
        System.out.println(name.length);
     }
}

◯実行結果

Documents $ 1javac test.java
Documents $ 1java test,java
3
Documents $ 1

こうすることで、配列nameの要素数がわかりました。

配列に要素を追加するときや、配列同士を結合させるときにもlengthメソッドを使用します。まずは、今回の要素数を確認するやり方を覚えておきましょう。

配列を文字列に変換する方法

配列のデータを1つの文字列に変換する方法を解説します。
文字列に変換することで、1つのまとまったデータとして扱うことができ、便利になる場合があります。

文字列に変換する場合は、String.joinメソッドを使うのがよいですね。String.joinメソッドは次のように使います。

public class test{
     public static void main(String[] args){
        String[] name ={“田中”, “佐藤”, “鈴木”};
        String str_name = String.join(“,”, name);
        System.out.println(str_name);
     }
}

◯実行結果

Documents $ 1javac test.java
Documents $ 1java test.java
田中,佐藤,鈴木
Documents $ 1

String.joinメソッドは2つの引数を持ちます。

1つの目の引数は「文字列を何で区切るか」を指定します。今回は「,」で区切りたいので、そのように指定しました。もし「&」で区切りたい場合は、次のように記述しましょう。

public class test{
     public static void main(String[] args){
           String[] name ={“田中”, “佐藤”, “鈴木”};
           String str_name = String.join(“&”, name);
           System.out.println(str_name);
       }
}

◯実行結果

Documents $ 1javac test.java
Documents $ 1java test.java
田中&佐藤&鈴木
Documents $ 1

2つ目の引数は、結合させたい配列名を指定します。この例ではnameという配列を結合させています。
こうすることによって、データを1つの文字列にまとめることができました。

配列に要素を追加する方法

ここでは配列に要素を追加する方法を解説します。

Javaの場合、配列に要素を追加するのが少し面倒になっています。
配列はあらかじめ「データがいくつ入るのか」が決められてしまっており、後から変更することができません。そのため、要素を追加するには、新しく別の配列を作成し、その配列にデータをコピーする、という手順を踏まないといけないのです。

新しい配列にデータをコピーするには、System.arraycopyメソッドを利用します。

System.arraycopyメソッドは次のように使います。

public class test{
     public static void main(String[] args){
        String[] name ={“田中”, “佐藤”, “鈴木”};
 
        String[] name2 = new String[5];

        System.arraycopy(name, 0, name2, 0, 3);// nameのデータをname2にコピー
 
        for (int i = 0; i < name2.length; i++) {

           System.out.print(name2[i] + “,”);
        }
     }
}

◯実行結果

Documents $ 1javac test.java
Documents $ 1java test.java
田中,佐藤,鈴木,null,null,Documents $ 1

このようにすることで、配列に要素を追加することが可能です。

配列をソートする方法

ここでは配列を綺麗に並び替える方法を紹介します。

配列をソートする場合は、Arrays.sortメソッドを使えば簡単です。
ただし、Arraysクラスはjava.utilパッケージのクラスのため、importすることを忘れないでくたさい。

// Arraysクラスを使えるようにする。
import java.util.Arrays;
 
public class test{
 public static void main(String[] args){
         int[] num = { 3, 4, 1, 2, 5, 8, 7, 6, 10, 9 };
        Arrays.sort(num);
         for (int i = 0; i < num.length; i++) {
             System.out.print(num[i] + “, “);
         }
    }
}

◯実行結果

Documents $ 1javac test.java
Documents $ 1java test.java
1,2,3,4,5,6,7,8,9,10, Documents $ 1

このよう、バラバラだったnumのデータが1から順番に並ぶようになりました。
配列をソートするときは、Arrays.sortメソッドを使うだけでOKです。

配列を結合する方法

2つ以上の配列を結合させる方法を解説します。

配列同士をくっつけるときにもSystem.arraycopyメソッドを使います。先ほども解説しましたが、System.arraycopyメソッドは、配列のデータをコピーするときに使うメソッドです。

配列を結合させる場合は、まずは新しい配列を1つ作ります。そして、その配列にSystem.arraycopyメソッドを使ってデータをコピーするという流れになります。

サンプルプログラムも紹介します。

public class test{
 public static void main(String[] args){
         String[] name = {“田中”, “佐藤”, “鈴木”};
         String[] name2 = {“木村”, “高橋”};
 
        int len = name.length + name2.length;
 
        String[] new_name = new String[len];
 
        // new_nameにnameのデータをコピー
        System.arraycopy(name, 0, new_name, 0, name.length);
 
        // new_nameにname2のデータをコピー
        System.arraycopy(name2, 0, new_name, name.length, name2.length);
 
        for (int i = 0; i < new_name.length; i++) {
            System.out.print(new_name[i] + “, “);
        }
    }
}

◯実行結果

Documents $ 1javac test.java
Documents $ 1java test.java
田中,佐藤,鈴木,木村,高橋, Documents $ 1

少し複雑なので、やり方を整理しましょう。

  1. new_nameという新しい配列を作成
  2. System.arraycopyメソッドでnew_nameにnameのデータをコピー
  3. System.arraycopyメソッドでnew_nameにname2のデータをコピー

このような手順を踏むことによって、2つの配列を結合させることができます。
3つの配列を結合させる場合も同じような手順を踏めば問題ありませんよ。

まとめ

本記事ではJavaの配列について解説してきました。配列の初期化方法や、操作方法などがわかって頂けたでしょうか?

改めて本記事で学んだ内容をおさらいしておきましょう。

◯配列とは?
複数の値を1つにまとめて扱うことができるもの

◯配列の基礎

宣言方法
型名[] 配列名;

初期化
int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

データの出力
String[] name ={ “田中”, “佐藤”, “鈴木”};
System.out.println(name[0]);

◯配列の応用

要素数を確認する
name.lengthメソッド

文字列に変換する
String.joinメソッド

要素を追加する
System.arraycopyメソッド

ソートする
Arrays.sortメソッド

配列同士を結合する

  • 1.new_nameという新しい配列を作成
  • 2.System.arraycopyメソッドでnew_nameにnameのデータをコピー
  • 3.System.arraycopyメソッドでnew_nameにname2のデータをコピー

配列を使えるようになれば、多くのデータをプログラムで扱うことが可能になり、できることの幅が広がります。
実務でも頻繁に配列を使うことになるので、この機会にしっかりと覚えておきましょう。

本記事がJava初心者にとって有意義なものとなれば幸いです。

プログラミングの家庭教師『Tech Teacher』


引用元:Tech Teacher

「スクールに通い続ける自信がない…」
「時間がなくてスクールに通えない…」

そんな方にはプログラミングの家庭教師『Tech Teacher』がおすすめです。
Tech Teacherはマンツーマン指導なので、生徒様一人ひとりに最適な指導を行うことができます。また、オンライン指導も可能なので、全国どこにいても家庭教師の授業を受けることができます。

Tech Teacherの3つの特徴


生徒様に最適化されたマンツーマン指導
完全マンツーマンの指導なので、生徒様の目的・学習状況・ご要望に合わせて、最適な指導をご提供いたします。

指導力・人柄・相性の優れた教師のご紹介
Tech Teacherには採用率20%の選考を突破した、指導力の高い教師が在籍しています。また、選考では指導力だけではなく人柄も重視しております。

1,000人の教師が在籍!幅広い指導に対応可能
業界トップレベルの1,000人の教師が在籍しています。そのため、幅広い言語・ツール・目的に対応することができます。

家庭教師ならではの5つの魅力


オーダーメイドのカリキュラム
生徒様一人ひとりに習熟度・目的・期間に応じて最適なカリキュラムを提供いたします。

きめ細やかなフォローが可能
生徒様からのご要望にきめ細やかに対応し、学習計画や勉強法などの指導もできるので、普段の勉強も捗ります。

習い事・学業・お仕事との両立が簡単
教室に通う必要がないので親御様の送迎も不要です。授業時間・頻度を生徒様のご都合に合わせて自由に調節することができます。

自分のペースで進められる
生徒様の理解度や意欲に応じて授業のスピードを調節できます。不明点や疑問点は都度立ち止まって解消できるので、着実に理解して進むことができます。

すぐ質問できるから挫折しない
先生を独り占めできるので、周りの目を気にすることなく分からないところをいつでも質問できます。

Tech Teacherへのお問い合わせ

無料体験授業・資料請求のお問い合わせはこちらから

質問のみのお問い合わせも受け付けております。