Menu
CoddyTech

Mengosongkan dan Menyalin

Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 27 dari 59.

method clear() menghapus semua elemen dari HashSet, sehingga HashSet menjadi kosong.

Method clone() mengembalikan salinan dangkal dari HashSet. (Elemen-elemennya sendiri tidak diklon.)

Sebagai contoh, pertama-tama buat HashSet:

HashSet<String> set = new HashSet<>();
set.add("Coddy");

Untuk mengkloning set:

HashSet<String> clonedSet = (HashSet<String>) set.clone();
System.out.println(clonedSet);
// output: [Coddy]

Untuk mengosongkan set:

set.clear();
System.out.println(set.isEmpty());
// output: true

Mengapa kita memerlukan casting dengan clone()?

Kamu sudah belajar tentang casting dengan tipe primitif (seperti int x = (int) 3.14). Konsep yang sama berlaku untuk object, tetapi karena alasan yang berbeda.

Method clone() mengembalikan tipe Object generik, bukan HashSet<String> tertentu. Ini karena clone() didefinisikan di class Object dan tidak tahu tipe apa yang sedang kamu clone.

// Yang dikembalikan clone():
Object cloneResult = set.clone();  // Mengembalikan Object, bukan HashSet<String>

// Yang kita butuhkan:
HashSet<String> clonedSet = (HashSet<String>) set.clone();  // Ubah tipe Object → HashSet<String>

Penge-cast-an memberi tahu Java: "Aku tahu Object ini sebenarnya adalah HashSet<String>, jadi perlakukan sebagai HashSet<String>."

Tanpa cast, kamu akan mendapatkan error kompilasi karena Java tidak akan otomatis mengonversi Object menjadi HashSet<String>.

challenge icon

Tantangan

Mudah

Buat method bernama processSet yang menerima HashSet berisi String sebagai input. Method ini harus:

  1. Mengkloning set.
  2. Mengosongkan set asli.
  3. Mencetak set hasil kloning dan ukurannya dalam format:
    Cloned Set: [elements]
    Cloned Set Size: X
  4. Mencetak set asli (setelah dikosongkan) dan ukurannya dalam format:
    Original Set after clear: [elements]
    Original Set Size: Y

Coba sendiri

import java.util.HashSet;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
@SuppressWarnings("unchecked")

public class Main {
    public static void processSet(HashSet<String> set) {
        // Tulis kodemu di sini
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String setString = scanner.nextLine();
        
        Type setType = new TypeToken<HashSet<String>>(){}.getType();
        HashSet<String> set = new Gson().fromJson(setString, setType);
        
        processSet(set);
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Java online