JavaRush /Java Blog /Random-JA /コーヒーブレイク#217。Javaでリストを初期化する方法。Java の生産性を向上させる 7 つの簡単なトリック...

コーヒーブレイク#217。Javaでリストを初期化する方法。Java の生産性を向上させる 7 つの簡単なトリック: ヒントと例

Random-JA グループに公開済み

Javaでリストを初期化する方法

出典: FreeCodeCamp この記事では、Java のさまざまな List 初期化メソッドを実際の例とともに説明します。 コーヒーブレイク#217。 Javaでリストを初期化する方法。 Java の生産性を向上させる 7 つの簡単なトリック: ヒントと例 - 1Java 言語の基本的なデータ構造の 1 つは Listです。これにより、開発者は一連の要素を保存および管理できます。Java でのリストの初期化は、リストの初期状態を定義し、その後の操作に備えて準備するため、開発プロセスにおける重要なステップです。Java でリストを初期化するにはさまざまな方法がありますが、選択はプロジェクトの特定の要件によって異なります。
  • ArrayListコンストラクターを使用します。
  • add()メソッドを使用します。
  • Arrays.asList()メソッドを使用します。
  • Stream.of()メソッドを使用します。
これらの方法を詳しく見てみましょう。

ArrayList コンストラクターを使用してリストを初期化する方法

Java では、ArrayListクラスは動的配列インターフェースListの実装であり、必要に応じてリストに要素を追加したり、リストから要素を削除したりできます。ArrayListクラスは、クラスのインスタンスを作成するためのいくつかのコンストラクターを提供します。初期容量なしで ArrayListオブジェクトを作成する構文は次のとおりです。
ArrayList<Object> list = new ArrayList<Object>();
引数のないコンストラクターは、初期容量が 10 要素の 空のリスト ( List ) を作成します。リストがこの容量を超える場合、 ArrayListクラスは、より大きな新しい配列を作成し、古い配列から新しい配列に要素をコピーすることにより、容量を自動的に増やします。あるいは、 1 つの整数引数を持つコンストラクターを使用して、初期容量を持つArrayListオブジェクトを作成することもできます。ここで、容量はリストの初期容量です。
ArrayList<Object> list = new ArrayList<Object>(capacity);
値を使用してリストを 初期化するには、コレクションを引数として受け取るコンストラクターを使用できます。Collectionインターフェイスを実装する任意のコレクション オブジェクト (別のArrayListLinkedListなど)をこのコンストラクターに渡すことができます。コレクションの要素は、コレクション内に出現する順序で新しいArrayListに追加されます。ArrayList を作成し、 Collectionを受け取るコンストラクターを使用して値で初期化する方法の例を次に示します。
import java.util.ArrayList;
import java.util.Arrays;

public class Example {
    public static void main(String[] args) {
        // создаем массив целых чисел
        Integer[] array = {1, 2, 3, 4, 5};

        // создаем список из массива
        ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(array));

        // печатаем список
        System.out.println(list); // [1, 2, 3, 4, 5]
    }
}
この例では、整数の配列を作成し、それをArrays.asList()メソッドに渡してListオブジェクトを作成します。次に、このListオブジェクトをArrayListコンストラクターに渡し、元の配列と同じ要素を持つ新しいArrayListを作成します。最後に、 System.out.println()メソッドを使用してリストの内容を出力します。

add() メソッドを使用してリストを初期化する方法

add()メソッドは、要素をコレクションまたはリストに追加するために Java で広く使用されています。このメソッドは、 ListSetMapなど、Java のいくつかのコレクション型で使用できます。add()メソッドは1 つの引数、つまりコレクションに追加される要素を受け取ります。Java のリストは順序付けされたコレクションであり、重複を含む可能性があるため、vListに要素を追加する場合、 add()メソッドが特に便利です。add()メソッドを使用すると、リストの末尾に要素を追加でき、いくつかの初期値でリストを初期化する便利な方法になります。Java で add()メソッドを使用してリストを初期化する方法の例を次に示します。
import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        // создаем новый ArrayList
        List<String> myList = new ArrayList<>();

        // добавляем элементы в список, используя метод the add()
        myList.add("apple");
        myList.add("banana");
        myList.add("cherry");

        // печатаем содержимое списка
        System.out.println(myList);
    }
}
この例では、まずmyListという名前の 新しいArrayListを作成します。次に、add()メソッドを使用して、3 つの文字列 (「apple」、「banana」、および「cherry」) をリストの最後に追加します。次に、 System.out.println()メソッドを使用してリストの内容を出力します。プログラムを実行すると、出力は次のようになります。
【リンゴ、バナナ、チェリー】

Arrays.asList() メソッドを使用してリストを初期化する方法

Java の組み込みArrays.asList()メソッドは、配列をリストに変換します。このメソッドは配列を引数として受け取り、Listオブジェクトを返します。Arrays.asList()メソッドによって返されるオブジェクトは固定サイズのリストであるため、要素を追加したり削除したりすることはできません。Java でArrays.asList()メソッドを使用してリストを初期化するには、次の手順に従う必要があります。 まず、リストを初期化する要素の配列を宣言します。たとえば、「リンゴ」、「バナナ」、「オレンジ」の 3 つの要素を含むリストを初期化するとします。ここでは次のように配列を宣言できます。
String[] fruits = {"apple", "banana", "orange"};
次に、 Arrays.asList()メソッド を呼び出し、配列を引数として渡します。これにより、配列の要素を含む Listオブジェクトが返されます。
List<String> fruitList = Arrays.asList(fruits);
これで、 fruitListオブジェクトを使用してリストの要素にアクセスできるように なりました。たとえば、リストを反復処理して各要素を出力できます。
for (String fruit : fruitList) {
    System.out.println(fruit);
}
結論:
アップルバナナオレンジ
Arrays.asList()メソッドは新しいListオブジェクトを作成するのではなく、元の配列のListオブジェクト表現を返すこと に注意することが重要です。これは、元の配列を変更すると、その変更がListオブジェクトにも反映されることを意味します。例えば:
fruits[0] = "pear";
System.out.println(fruitList.get(0)); // Вывод: pear
上の例では、fruits配列の最初の要素を「pear」に変更しました。FruitListオブジェクトの最初の要素にアクセスすると、「pear」も取得されます。これは、fruitListが単に果物の配列を表現したものであるためです。

Stream.of() メソッドを使用してリストを初期化する方法

Stream.of() は、 Java 8 以降のjava.util.streamパッケージで提供される便利なメソッドです。これは、プリミティブ型、配列、オブジェクトなど、あらゆる型の要素のストリームを作成するために使用されます。このメソッドは 1 つ以上の引数を受け取り、それらの引数で構成されるストリームを返します。Stream.of()メソッドの構文:
Stream<T> stream = Stream.of(t1, t2, t3, ..., tn);
ここで、Tはストリーム内の要素のタイプであり、t1からさらにtnまでがストリームに含める必要がある要素です。Java でStream.of()メソッドを使用してリストを初期化するには、次の操作を行う必要があります。
  1. まずjava.util.streamパッケージをインポートします。

  2. 次に、コンストラクターを使用して、必要な ArrayList 型のリストを作成します。次に例を示します。

    List<String> myList = new ArrayList<>();
  3. Stream.of()メソッドを使用してリストを初期化し、必要な要素を引数として渡してから、collect()メソッドを使用してストリーム要素をリストに収集します。次に例を示します。

    myList = Stream.of("Apple", "Banana", "Cherry", "Date")
                  .collect(Collectors.toList());
  4. 次に、リストを印刷して内容を確認します。

    System.out.println(myList);

    結論:

    【アップル、バナナ、チェリー、デーツ】

結論

Java でのリストの初期化は非常に一般的なプログラミング タスクであり、これを行うにはいくつかの方法があります。この記事で説明されている手順に従うと、Stream.of()メソッドを使用して、必要な要素を含むリストを簡単に作成および初期化できます。このアプローチは簡潔かつ柔軟であり、少数の要素でリストを初期化する必要がある場合に特に役立ちます。コーディングを楽しんでください!

Java の生産性を向上させる 7 つの簡単なトリック: ヒントと例

出典: Medium ここでは、Java 開発者の生産性向上に役立つ 7 つの実践的なヒントを厳選して紹介します。 いくつかの簡単なヒントに従うことで、Java アプリケーションのパフォーマンスを向上させることができます。

1. オブジェクトの代わりにプリミティブ型を使用します。

// Плохо: использование an object Integer
Integer count = 0;
for (int i = 0; i < 1000000; i++) {
    count++;
}

// Хорошо: использование примитива int
int count = 0;
for (int i = 0; i < 1000000; i++) {
    count++;
}

2. 不要なオブジェクトの作成を避けます。

// Плохо: использование конкатенации строк с помощью '+'
String str = "";
for (int i = 0; i < 10000; i++) {
    str += i;
}

// Хорошо: использование StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10000; i++) {
    sb.append(i);
}
String str = sb.toString();

3. 正しいデータ構造を使用します。

// Плохо: использование List для частого поиска
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// ...
if (names.contains("Charlie")) {
    // ...
}

// Хорошо: использование HashSet для частого поиска
Set<String> names = new HashSet<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// ...
if (names.contains("Charlie")) {
    // ...
}

4. メソッド呼び出しを最小限に抑えます。

// Плохо: вызов метода внутри цикла
for (int i = 0; i < 1000000; i++) {
    doSomething(i);
}

// Хорошо: выносим метод за пределы цикла
for (int i = 0; i < 1000000; i++) {
    // ...
}
doSomething(i);

5. static 修飾子と Final 修飾子を使用します。

// Плохо: создание ненужных экземпляров an objectов
public class MyClass {
    private int value;
    public void setValue(int value) {
        this.value = value;
    }
    public int getValue() {
        return value;
    }
}
MyClass obj = new MyClass();
obj.setValue(10);
int value = obj.getValue();

// Хорошо: использование статических и финальных модификаторов
public class MyClass {
    private static final int DEFAULT_VALUE = 0;
    private final int value;
    public MyClass(int value) {
        this.value = value;
    }
    public int getValue() {
        return value;
    }
}
MyClass obj = new MyClass(10);
int value = obj.getValue();

6. 状況に応じて適切なアルゴリズムを使用します。

// Плохо: использовать линейный поиск для большой коллекции
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// ...
int target = 7;
for (int i = 0; i < nums.size(); i++) {
    if (nums.get(i) == target) {
        // ...
    }
}
// Хорошо: использование бинарного поиска для большой коллекции
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// ...
int target = 7;
int index = Collections.binarySearch(nums, target);
if (index >= 0) {
    // ...
}

7. サイクルを最適化します。

// Плохо: вызов метода внутри цикла
for (int i = 0; i< 1000000; i++) {
    String str = getString(i);
    // ...
}

// Хорошо: минимизация вызовов методов в цикле
for (int i = 0; i < 1000000; i++) {
    String str = "String " + i;
    // ...
}
これらは、生産性を向上させることができるいくつかの簡単な Java トリックにすぎません。パフォーマンスの最適化は困難な場合があり、開発者はパフォーマンスのボトルネックを特定するためにコードを分析する必要があることが多いことに注意してください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION