HOWTO · Java

Java の山かっこ

このチュートリアルでは、山かっこ(<>) の意味と Java での使用方法を示します。

山かっこは、Java で Generics を定義するために使用されます。 ジェネリックは、クラス、メソッド、またはインターフェイスをパラメーター化する方法です。

たとえば、ArraylistHashMapHashset などの型はジェネリックを使用します。 ジェネリックは、任意の型にも使用できます。

このチュートリアルでは、Java の山かっこ (<>) とは何か、およびその使用方法について説明します。

Java の山かっこ (<>)

例を見てみましょう。 不特定のオブジェクトタイプを受け入れる Delftstack という名前のクラスがあります。 次に、フィールド EmployeeSalary があり、これも任意のオブジェクト タイプを受け入れます。

最後に、パラメーター化されたコンストラクターを宣言して、従業員の給与を出力します。 給与が整数、浮動小数点、倍精度、または文字列などであるかどうかは、ユーザーが決定します。

コード:

package delftstack;

public class Delftstack<T> {
  T EmployeeSalary;

  public Delftstack(T EmployeeSalary) {
    this.EmployeeSalary = EmployeeSalary;
  }

  public void print() {
    System.out.println("The Employee Salary is: " + this.EmployeeSalary);
  }
  public static void main(String[] args) {
    int EmployeeSalary = 1000;
    Delftstack Demo = new Delftstack(EmployeeSalary);
    Demo.print();
  }
}

上記のコードでは、クラス名に <T> を使用しています。 ここでは、T の代わりに何でも使用できます。

出力:

The Employee Salary is: 1000

前述のように、<T> はどの型にも使用されます。 特定の型を表すその他の一般的な用語もいくつかあります。これらの用語については、以下で説明します。

  1. <T> は任意の型と呼ばれます。
  2. <E> は要素タイプと呼ばれます。
  3. <N> は数値型と呼ばれます。
  4. <V> は値と呼ばれます。
  5. <K> はキーと呼ばれます。

Java でジェネリック <> を使用することのいくつかの重要な利点を以下に示します。

  • 再利用性: 達成しようとしているタスクに基づいてオブジェクト タイプを適用するため、ジェネリック メソッド、インターフェイスのクラスを複数回使用できます。
  • より良い出力: 指定したものとは異なるオブジェクト型を使用すると、コンパイラは時間通りに教えてくれます。
  • データ構造に最適: ジェネリックは、ArraylistHashmap などのデータ構造に最適です。

Java の組み込みデータ型での山かっこ (<>) の使用

前述のように、<> は ArrayListHashMapHashSet などの組み込みクラスでも使用されます。 これら 3つのデータ型の例を試してみましょう。

コード:

package delftstack;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;

public class Delftstack<T> {
  public static void main(String[] args) {
    ArrayList<String> Demo_List = new ArrayList<String>();
    Demo_List.add("Delftstack1");
    Demo_List.add("Delftstack2");
    Demo_List.add("Delftstack3");
    System.out.println(Demo_List);

    HashMap<String, Integer> Demo_Map = new HashMap<String, Integer>();
    Demo_Map.put("Jack", 1000);
    Demo_Map.put("Mike", 1500);
    Demo_Map.put("Michelle", 1800);
    System.out.println(Demo_Map);

    HashSet<String> Demo_Set = new HashSet<String>();
    Demo_Set.add("Delftstack1");
    Demo_Set.add("Delftstack2");
    Demo_Set.add("Delftstack3");
    System.out.println(Demo_Set);
  }
}

山かっこ (<>) は、ArrayListHashMap、および HashSet のデータ型を定義します。

出力:

[Delftstack1, Delftstack2, Delftstack3]
{Michelle=1800, Mike=1500, Jack=1000}
[Delftstack1, Delftstack2, Delftstack3]