Javaでオブジェクト配列を作成する方法とは?デメリットもわかりやすく解説
配列(Array)とは、固定数の項目を格納できるコンテナであり、格納できる項目はすべて同じ型である必要があります。多くのデータ構造は、アルゴリズムの実装において配列を活用しています。配列の概念を理解するうえで重要な用語は以下の2つです。
- 要素(Element):配列に格納されている個々の項目を「要素」と呼びます。
- インデックス(Index):配列内の各要素の位置には数値のインデックスが割り当てられており、このインデックスを使用して要素を識別します。
オブジェクト配列の作成方法
結論から言うと、可能です。Javaではオブジェクトもデータ型(参照型)として扱われるため、特定のクラスを型とした配列を作成し、そのクラスのインスタンスを格納することができます。
サンプルコード
以下のJavaの例では、まず Std というクラスを定義し、その後プログラム内で Std 型の配列を作成してインスタンスを格納します。さらに、配列内のすべての要素に対してメソッドを呼び出す処理を行っています。
class Std {
private static int year = 2018;
private String name;
private int age;
public Std(String name, int age){
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void display(){
System.out.println("Name: "+this.name);
System.out.println("Age: "+this.age);
System.out.println("Year: "+Std.year);
}
}
public class Sample {
public static void main(String args[]) throws Exception {
// Std型のオブジェクトを格納する配列を作成
Std st[] = new Std[4];
// 配列にインスタンスを格納
st[0] = new Std("Bala", 18);
st[1] = new Std("Rama", 17);
st[2] = new Std("Raju", 15);
st[3] = new Std("Raghav", 20);
// 配列内の各オブジェクトに対してdisplayメソッドを呼び出す
for(int i = 0; i<st.length; i++) {
st[i].display();
System.out.println(" ");
}
}
}実行結果
Name: Bala Age: 18 Year: 2018 Name: Rama Age: 17 Year: 2018 Name: Raju Age: 15 Year: 2018 Name: Raghav Age: 20 Year: 2018
オブジェクト配列のデメリット
便利なオブジェクト配列ですが、使用する際には以下のような注意点があります。
- サイズの事前指定が必要:配列にオブジェクトを格納するには、あらかじめ配列の長さを把握しておく必要があります。しかし、必要な要素数を実行前に正確に予測できるとは限りません。
- サイズ変更ができない:一度作成したオブジェクト配列は、後から内容(サイズ)を変更できません。コレクションフレームワークと異なり、追加や削除を行うためのメソッドが用意されていません。
- メモリ効率の問題:メモリ使用量の観点から考えると、オブジェクト配列の使用は必ずしも推奨されません。用途によっては ArrayList などのコレクションを検討する方が良いでしょう。
-
JavaでJSON配列を作成する方法をわかりやすく解説
JSON配列とは、角括弧で囲まれた値の順序付きコレクションのことです。具体的には「[」で始まり「]」で終わり、配列内の各値はカンマ(,)で区切られます。JSON配列のサンプル{ books: [Java, JavaFX, Hbase, Cassandra, WebGL, JOGL] }json-simpleは、JSONオブジェクトを処理するための軽量ライブラリです。このライブラリを使えば、JavaプログラムからJSONドキュメントの内容を読み取ったり、書き込んだりすることができます。json-simpleのMaven依存関係json-simpleライブラリを使用するには、まずpom.x
-
Javaジェネリクス入門:基本概念から実践的な使い方まで徹底解説
ジェネリクス(Generics)は、Java言語における最も重要な機能のひとつです。その背後にある考え方は非常にシンプルですが、通常の構文とは異なる記法が使われるため、一見複雑に感じられることがあります。 本チュートリアルでは、この便利なジェネリクスの概念を、初心者にもわかりやすい形で解説していきます。 ジェネリクスそのものに入る前に、そもそもなぜJavaにジェネリクスが必要だったのかを見ていきましょう。 Javaジェネリクスの目的 Java 5でジェネリクスが導入される以前は、以下のようなコードをエラーや警告なしに書いてコンパイルすることができました。 List list = new Arr