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

public class MutabilitasToList {

    public static void main(String[] args) {
        // collect(Collectors.toList()): hasil MUTABEL (implementasi ArrayList)
        List<String> lewatCollect = Stream.of("Budi", "Siti")
                .collect(Collectors.toList());
        lewatCollect.add("Dewi");
        System.out.println("collect(Collectors.toList()) : " + lewatCollect);

        // Stream.toList(): hasil TIDAK MUTABEL (sejak Java 16)
        List<String> lewatMethod = Stream.of("Budi", "Siti")
                .toList();
        System.out.println("stream.toList()              : " + lewatMethod);
        try {
            lewatMethod.add("Dewi");
        } catch (UnsupportedOperationException e) {
            System.out.println("stream.toList() menolak mutasi -> " + e.getClass().getSimpleName());
        }
    }
}
