array objects java
このJavaチュートリアルでは、完全なコード例を使用して、Javaでオブジェクトの配列を作成、初期化、並べ替えることを学習できます。
オブジェクトの配列とは何ですか?
ご存知のとおり、Javaプログラミング言語はオブジェクト指向プログラミング言語であるため、すべてオブジェクトに関するものです。
プログラムに単一のオブジェクトを格納する場合は、object型の変数を使用して格納できます。ただし、多数のオブジェクトを扱う場合は、オブジェクトの配列を使用することをお勧めします。
=> ここで完璧なJavaトレーニングガイドをチェックしてください。
Javaは、オブジェクトを他のプリミティブおよびカスタムデータ型とともに配列の要素として格納できます。 「オブジェクトの配列」と言うとき、配列に格納されるのはオブジェクト自体ではなく、オブジェクトの参照であることに注意してください。
このチュートリアルでは、Javaでのオブジェクトの配列の例だけでなく、作成、初期化、並べ替えについても理解します。
学習内容:
Javaでオブジェクトの配列を作成する方法は?
オブジェクトの配列は、「Object」クラスを使用して作成されます。
次のステートメントは、オブジェクトの配列を作成します。
Class_name () objArray;
または、以下に示すように、オブジェクトの配列を宣言することもできます。
アンドロイドのための最高のmp3ダウンロードサイト
Class_nameobjArray();
上記の両方の宣言は、objArrayがオブジェクトの配列であることを意味します。
したがって、クラス「Employee」がある場合は、次のようにEmployeeオブジェクトの配列を作成できます。
Employee() empObjects; OR Employee empObjects();
上記のオブジェクトの配列の宣言は、プログラムで使用する前に「new」を使用してインスタンス化する必要があります。
あなたはできる 以下に示すように、オブジェクトの配列を宣言してインスタンス化します。
Employee() empObjects = new Employee(2);
注意 上記のようにオブジェクトの配列がインスタンス化されたら、オブジェクトの配列の個々の要素をnewを使用して作成する必要があります。
上記のステートメントは、2つの要素/オブジェクト参照を持つオブジェクト「empObjects」の配列を作成します。
オブジェクトの配列を初期化する
オブジェクトの配列がインスタンス化されたら、値で初期化する必要があります。オブジェクトの配列はプリミティブ型の配列とは異なるため、プリミティブ型の場合とは異なり、配列を初期化することはできません。
オブジェクトの配列の場合、配列の各要素、つまりオブジェクトを初期化する必要があります。オブジェクトの配列には実際のクラスオブジェクトへの参照が含まれていることはすでに説明しました。したがって、オブジェクトの配列が宣言されてインスタンス化されたら、クラスの実際のオブジェクトを作成する必要があります。
オブジェクトの配列を初期化する1つの方法は、コンストラクターを使用することです。実際のオブジェクトを作成するときに、コンストラクターに値を渡すことにより、各オブジェクトに初期値を割り当てることができます。オブジェクトにデータを割り当てるクラスに、個別のメンバーメソッドを含めることもできます。
次のプログラムは、コンストラクターを使用した配列オブジェクトの初期化を示しています。
ここでは、クラスEmployeeを使用しました。このクラスには、従業員名と従業員IDの2つのパラメーターを受け取るコンストラクターがあります。 main関数では、employeeの配列が作成された後、クラスemployeeの個々のオブジェクトを作成します。
次に、コンストラクターを使用して各オブジェクトに初期値を渡します。
プログラムの出力は、 以前に初期化された各オブジェクトの内容 。
class Main{ public static void main(String args()){ //create array of employee object Employee() obj = new Employee(2) ; //create & initialize actual employee objects using constructor obj(0) = new Employee(100,'ABC'); obj(1) = new Employee(200,'XYZ'); //display the employee object data System.out.println('Employee Object 1:'); obj(0).showData(); System.out.println('Employee Object 2:'); obj(1).showData(); } } //Employee class with empId and name as attributes class Employee{ int empId; String name; //Employee class constructor Employee(inteid, String n){ empId = eid; name = n; } public void showData(){ System.out.print('EmpId = '+empId + ' ' + ' Employee Name = '+name); System.out.println(); } }
出力:
以下に示すサンプルプログラムは、Employeeオブジェクトに初期値を割り当てるために使用されるEmployeeクラスのメンバー関数を示しています。
Javaでのオブジェクトの配列のサンプルプログラム
与えられているのは、Javaのオブジェクトの配列を示す完全な例です。
このプログラムには、フィールドとして従業員ID(empId)と従業員名(name)があり、従業員オブジェクトにデータを割り当てて従業員オブジェクトの内容を表示するメソッドとして「setData」と「showData」を持つEmployeeクラスがあります。
Mac用の無料のDVDコピーソフトウェア
プログラムのmainメソッドでは、最初にEmployeeオブジェクトの配列を定義します。これは参照の配列であり、実際のオブジェクトではないことに注意してください。次に、デフォルトのコンストラクターを使用して、Employeeクラスの実際のオブジェクトを作成します。次に、setDataメソッドを使用してオブジェクトにデータが割り当てられます。
最後に、オブジェクトはshowDataメソッドを呼び出して、Employeeクラスオブジェクトの内容を表示します。
class Main{ public static void main(String args()){ //create array of employee object Employee() obj = new Employee(2) ; //create actual employee object obj(0) = new Employee(); obj(1) = new Employee(); //assign data to employee objects obj(0).setData(100,'ABC'); obj(1).setData(200,'XYZ'); //display the employee object data System.out.println('Employee Object 1:'); obj(0).showData(); System.out.println('Employee Object 2:'); obj(1).showData(); } } //Employee class with empId and name as attributes class Employee{ int empId; String name; public void setData(intc,String d){ empId=c; name=d; } public void showData(){ System.out.print('EmpId = '+empId + ' ' + ' Employee Name = '+name); System.out.println(); } }
出力:
Javaでオブジェクトの配列をソートする方法は?
プリミティブ型の配列と同様に、オブジェクトの配列もArraysクラスの「sort」メソッドを使用して並べ替えることができます。
ただし、違いは、オブジェクトが属するクラスは、オブジェクトの配列が並べ替えられるように「Comparable」インターフェースを実装する必要があることです。また、配列を並べ替えるフィールドを決定する「compareTo」メソッドをオーバーライドする必要があります。デフォルトでは、オブジェクトの配列は昇順で並べ替えられます。
次のプログラムは、オブジェクトの配列の並べ替えを示しています。 この目的でEmployeeクラスを使用し、配列は従業員ID(empId)に基づいて並べ替えられています。
ソフトウェアテストのテスト計画とは
import java.util.*; //employee class implementing comparable interface for array of objects class Employee implements Comparable { private String name; privateint empId; //constructor public Employee(String name, int empId) { this.name = name; this.empId = empId; } public String getName() { return name; } publicintgetempId() { return empId; } //overridden functions since we are working with array of objects @Override public String toString() { return '{' + 'name='' + name + ''' + ', EmpId=' + empId + '}'; } //compareTo method overridden for sorting array of objects @Override publicint compareTo(Employee o) { if (this.empId != o.getempId()) { returnthis.empId - o.getempId(); } returnthis.name.compareTo(o.getName()); } } //main class class Main { public static void main(String() args) { //array of Employee objects Employee() employees = { new Employee('Rick', 1), new Employee('Sam', 20), new Employee('Adi', 5), new Employee('Ben', 10) }; //print original array System.out.println('Original Array of Employee objects:'); System.out.println(Arrays.toString(employees)); //sort array on empId Arrays.sort(employees); //display sorted array System.out.println('
Sorted Array of Employee objects:'); System.out.println(Arrays.toString(employees)); } }
出力:
上記のプログラムでは、EmployeeクラスがComparableインターフェイスを実装していることに注意してください。次に、メソッドcompareToがオーバーライドされ、empIdフィールド上のオブジェクトの指定された配列が並べ替えられます。
また、オブジェクトの配列から文字列への変換を容易にするために、メソッド「toString」がオーバーライドされます。
よくある質問
Q#1)Javaでオブジェクトの配列を作成できますか?
回答: はい。 Javaは、プリミティブ型の配列を持つことができるのと同じように、オブジェクトの配列を持つことができます。
Q#2)Javaのオブジェクトの配列とは何ですか?
回答: Javaでは、配列は動的に作成されたオブジェクトであり、プリミティブデータ型またはオブジェクトである要素を持つことができます。配列には、オブジェクト型の変数を割り当てることができます。
Q#3)Javaでオブジェクトをどのようにソートしますか?
回答: Javaでオブジェクトを並べ替えるには、「Comparable」インターフェースを実装し、特定のフィールドに従って「compareTo」メソッドをオーバーライドする必要があります。次に、「Arrays.sort」メソッドを使用してオブジェクトの配列を並べ替えることができます。
Q#4)ArrayList内のオブジェクトをどのようにソートしますか?
回答: ArrayListは、Collections.sort()メソッドを直接使用して並べ替えることができます。 Collections.sort()メソッドは、要素を自然に昇順で並べ替えます。
結論
このチュートリアルでは、「オブジェクトの配列」というトピックと、オブジェクトの配列に関連するさまざまなサブトピックについて説明しました。オブジェクトの配列を初期化およびソートする例を見ました。
オブジェクトを並べ替えるクラスを並べ替えるには、「Comparable」インターフェースを実装し、「compareTo」メソッドもオーバーライドする必要があります。 「オブジェクトの配列」のコンテンツを出力するには、「toString」メソッドもオーバーライドして、各オブジェクトのすべてのコンテンツを書き込むことができるようにする必要があります。
=> すべてのJavaトレーニングシリーズを見るには、ここにアクセスしてください。