Add Element To List Java Stream

3 min read Jun 22, 2024
Add Element To List Java Stream

Menambahkan Elemen ke List Menggunakan Java Stream

Java Stream menawarkan cara yang elegan dan efisien untuk memproses data dalam koleksi. Namun, secara default, Stream tidak dirancang untuk memodifikasi koleksi yang mendasarinya. Untuk menambahkan elemen ke list menggunakan Stream, kita perlu menggunakan operasi yang menghasilkan list baru yang berisi elemen-elemen awal dan elemen baru yang ingin ditambahkan.

Pendekatan 1: Menggunakan Stream.concat()

Salah satu cara untuk menambahkan elemen ke list menggunakan Stream adalah dengan menggabungkan stream dari list awal dengan stream yang berisi elemen baru. Berikut contohnya:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class AddElementToList {

    public static void main(String[] args) {
        List list = Arrays.asList("Apple", "Banana", "Cherry");
        String newElement = "Durian";

        // Gabungkan stream dari list awal dengan stream yang berisi elemen baru
        List newList = Stream.concat(list.stream(), Stream.of(newElement))
                .collect(Collectors.toList());

        System.out.println("List awal: " + list);
        System.out.println("List baru: " + newList);
    }
}

Output:

List awal: [Apple, Banana, Cherry]
List baru: [Apple, Banana, Cherry, Durian]

Pendekatan 2: Menggunakan Stream.of() dan Collectors.toList()

Pendekatan lain adalah dengan membuat stream baru yang berisi elemen-elemen awal dan elemen baru, kemudian mengumpulkannya menjadi list baru. Berikut contohnya:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class AddElementToList {

    public static void main(String[] args) {
        List list = Arrays.asList("Apple", "Banana", "Cherry");
        String newElement = "Durian";

        // Buat stream baru yang berisi elemen-elemen awal dan elemen baru
        List newList = Stream.of(list, Stream.of(newElement))
                .flatMap(List::stream)
                .collect(Collectors.toList());

        System.out.println("List awal: " + list);
        System.out.println("List baru: " + newList);
    }
}

Output:

List awal: [Apple, Banana, Cherry]
List baru: [Apple, Banana, Cherry, Durian]

Catatan

Kedua pendekatan di atas menghasilkan list baru yang berisi elemen-elemen awal dan elemen baru yang ditambahkan. List awal tidak dimodifikasi.

Pilihan pendekatan tergantung pada kebutuhan dan preferensi Anda. Jika Anda ingin menghindari pembuatan list baru dan memodifikasi list awal secara langsung, Anda perlu menggunakan metode lain seperti add() atau addAll().

Latest Posts