JavaRush /Java Blog /Random-ID /Rehat kopi #209. 4 Cara Menemukan Duplikat di Daftar Java...

Rehat kopi #209. 4 Cara Menemukan Duplikat di Daftar Java. Cara Membuat Media Player Sederhana Menggunakan Java

Dipublikasikan di grup Random-ID

4 Cara Menemukan Duplikat di Daftar Java

Sumber: Codippa Artikel ini membahas berbagai cara untuk menemukan duplikat dalam Daftar. Kami menyebut elemen duplikat yang muncul lebih dari satu kali. Rehat kopi #209.  4 Cara Menemukan Duplikat di Daftar Java.  Cara membuat pemutar media sederhana menggunakan Java - 1

1. Menggunakan Set

Di bawah ini adalah algoritma untuk menemukan elemen duplikat dalam Daftar Java menggunakan Set .
  • Kami membuat objek Java Set baru dan ArrayList baru untuk menyimpan elemen duplikat.
  • Kami melakukan iterasi atau perulangan melalui daftar.
  • Kami menambahkan setiap elemen dalam daftar ke Set menggunakan metode add() .
  • Hasilnya, add() mengembalikan nilai true jika elemen telah ditambahkan, dan false jika elemen sudah ada di Set .
  • Jika elemen sudah ada di Set , itu adalah duplikat. Lalu kita tambahkan ke ArrayList .
  • Di akhir iterasi, ArrayList baru akan berisi semua elemen duplikat dari List asli ( List ).
Contoh program berdasarkan algoritma ini ditunjukkan di bawah ini.
List<Integer> numbers = List.of(1, 2, 3, 4, 3, 1, 2);
Set<Integer> set = new HashSet<>();
List<Object> duplicates = new ArrayList<>();
numbers.forEach(n -> {
  if (!set.add(n)) {
    duplicates.add(n);
  }
});
System.out.println("Duplicate elements: " + duplicates);
Kesimpulan:
Elemen duplikat: [3, 1, 2]
Perhatikan bahwa kami menggunakan metode forEach() untuk melakukan iterasi melalui List , tetapi Anda dapat menggunakan metode lainnya.

2. Menggunakan Peta

Di bawah ini adalah langkah-langkah algoritme untuk metode menemukan duplikat dalam List .
  • Buat objek Peta baru dan ArrayList baru untuk menampung elemen duplikat.
  • Kunci dari Map ini akan menjadi elemen dari List asli , dan nilainya akan menjadi jumlah kemunculannya di List .
  • Ulangi daftar ( List ).
  • Untuk setiap elemen di List , periksa apakah elemen tersebut ada sebagai kunci di Map menggunakan metode berisiKey() .
  • Jika ada, naikkan nilainya di Peta dan tambahkan lagi menggunakan metode put() .
  • Jika belum ada, tambahkan pada Map dengan nilai 1.
  • Setelah iterasi daftar selesai, semua elemen Peta dengan nilai lebih besar dari 1 menjadi duplikat.
  • Terakhir, ulangi Peta dan tambahkan elemen yang nilainya lebih besar dari 1 ke daftar untuk menyimpan elemen duplikat.
Contoh programnya ditunjukkan di bawah ini:
List<Integer> numbers = List.of(1, 2, 3, 4, 3, 1, 2);
Map<Integer, Integer> countMap = new HashMap<>();
List<Object> duplicates = new ArrayList<>();
numbers.forEach(n -> {
  if (countMap.containsKey(n)) {
    countMap.put(n, countMap.get(n) + 1);
  } else {
    countMap.put(n, 1);
  }
});
countMap.keySet().forEach(k -> {
  if(countMap.get(k)> 1) {
    duplicates.add(k);
  }
});

3. Menggunakan loop bersarang

Jika Anda diminta untuk menemukan elemen duplikat dalam daftar tanpa menggunakan kelas Collection seperti Set , Map , dan sebagainya, maka metode ini akan berguna. Tahapan algoritma:
  • Ulangi daftar ( List ).
  • Setelah perulangan selesai pertama kali, kembali ke awal dan ulangi langkah-langkah tersebut lagi untuk menemukan setiap item di sisa daftar.
  • Jika elemen loop saat ini sama dengan elemen lainnya, maka elemen tersebut merupakan duplikat.
Sebuah program yang ditulis menggunakan algoritma ini terlihat seperti ini:
List<Integer> numbers = List.of(1, 2, 3, 4, 3, 1, 2);
List<Object> duplicates = new ArrayList<>();
for (int i = 0; i < numbers.size() - 1; i++) {
  for (int j = i + 1; j < numbers.size(); j++) {
    if (numbers.get(i).equals(numbers.get(j))) {
      duplicates.add(numbers.get(i));
    }
  }
}

4. Menggunakan Java Stream

Metode ini didasarkan pada thread Java 8 dan berfungsi seperti ini:
  • Konversikan Daftar ke Aliran .
  • Ubah aliran menjadi Peta menggunakan metode Collect() . Misalnya, key adalah setiap elemen dalam daftar, dan value adalah jumlah kemunculannya.
  • Metode Collect() kembali dan Map menggunakan Collector sebagai argumen. Implementasi Collector menentukan kunci dan nilai dari Map yang dihasilkan .
  • Karena kita ingin kunci Map menjadi elemen Daftar dan nilainya menjadi jumlah kemunculannya, kita dapat menggunakan Collectors.groupingBy() untuk membuat collector .
  • Setelah Peta dibuat menggunakan groupingBy() , gunakan metode entrySet() untuk mendapatkan sekumpulan objek Map.Entry .
  • Filter rekaman berdasarkan nilai (yaitu, jumlah kemunculan) lebih besar dari 1.
  • Cocokkan rekaman yang difilter dengan kuncinya.
Contoh program:
List<Integer> numbers = List.of(1, 2, 3, 4, 3, 1, 2);
Map<Object, Long> map = numbers.
                        stream().
                        collect(
                          Collectors.
                          groupingBy(n -> n, Collectors.counting())
                        );
List<Object> duplicates = map.
                          entrySet().
                          stream().
                          filter(e -> e.getValue() > 1).
                          map(e -> e.getKey()).
        collect(Collectors.toList());
Metode groupingBy() digunakan untuk mengelompokkan item dalam suatu koleksi berdasarkan kriteria tertentu. Berikut ini contoh cara kerja metode ini:
  • Kriteria ini disediakan sebagai ekspresi lambda karena groupingBy() menggunakan argumen Function , yang merupakan antarmuka fungsi.
  • Dalam hal ini, kita mengelompokkan berdasarkan fungsi identitas n -> n , yang berarti kita mengelompokkan elemen daftar berdasarkan nilainya.
  • Argumen kedua pada groupingBy() adalah kolektor lain yang menentukan bagaimana elemen dalam setiap grup harus digabungkan.
  • Di sini kita menggunakan Collectors.counting() yang membuat Peta berisi jumlah setiap elemen dalam daftar.
Hasilnya, Peta yang dihasilkan akan berisi hitungan berapa kali setiap elemen muncul dalam daftar. Kami kemudian memfilter Peta menggunakan metode filter() untuk menemukan elemen yang jumlahnya lebih besar dari 1, yang menunjukkan bahwa elemen tersebut adalah duplikat.

Cara Membuat Media Player Sederhana Menggunakan Java

Sumber: Medium Tutorial ini akan membantu Anda membuat pemutar media sederhana di Java untuk memutar file audio dan video. Rehat kopi #209.  4 Cara Menemukan Duplikat di Daftar Java.  Cara membuat pemutar media sederhana menggunakan Java - 2Mengembangkan pemutar media bisa menjadi cara yang bagus untuk mempelajari cara menggunakan perpustakaan bawaan Java untuk bekerja dengan file media. Untuk menyelesaikan tugas ini, kita akan menggunakan JavaFX dan toolkit Graphical User Interface (GUI) untuk Java.

Langkah 1: Pengaturan Proyek

Pertama, kita perlu menyiapkan proyek Java kita. Kami akan menggunakan Eclipse sebagai IDE, tetapi Anda dapat menggunakan IDE apa pun pilihan Anda. Buat proyek Java baru dan beri nama "MediaPlayer". Kita juga perlu menambahkan perpustakaan JavaFX ke proyek kita. Untuk melakukannya, buka properti proyek dan tambahkan perpustakaan JavaFX ke jalur pembangunan proyek.

Langkah 2: Buat Antarmuka Pengguna

Selanjutnya kita akan membuat antarmuka pengguna untuk pemutar media kita. Ini akan menjadi antarmuka pengguna yang sederhana dengan tombol putar, tombol berhenti dan panel pemutar media yang menampilkan file video atau audio yang ingin kita putar. Untuk antarmuka kami, kami akan menggunakan tata letak BorderPane . Panel pemutar media akan berada di tengah BorderPane, dan tombol putar dan berhenti akan berada di bagian bawah BorderPane. Berikut kode UI-nya:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

public class MediaPlayerApp extends Application {

    private MediaPlayer mediaPlayer;

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Media Player");

        Button playButton = new Button("Play");
        playButton.setOnAction(e -> mediaPlayer.play());

        Button stopButton = new Button("Stop");
        stopButton.setOnAction(e -> mediaPlayer.stop());

        BorderPane borderPane = new BorderPane();

        Media media = new Media("http://www.example.com/sample.mp4");
        mediaPlayer = new MediaPlayer(media);
        MediaView mediaView = new MediaView(mediaPlayer);
        borderPane.setCenter(mediaView);
        borderPane.setBottom(stopButton);
        borderPane.setRight(playButton);

        Scene scene = new Scene(borderPane, 600, 400);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Dalam kode ini, kita membuat dua tombol: playButton dan stopButton . Ketika tombol play diklik, kita memanggil metode play() dari objek mediaPlayer . Ketika tombol stop diklik, kita memanggil metode stop() dari objek mediaPlayer . Kami juga membuat objek Media dengan URL file video contoh dan objek mediaPlayer dengan objek Media . Terakhir, kita membuat objek MediaView dengan objek MediaPlayer dan menetapkannya sebagai pusat BorderPane .

Langkah 3. Menguji pemutar media

Sekarang setelah UI pemutar media dikonfigurasi, kita dapat mengujinya dengan meluncurkan aplikasi. Saat kita meluncurkan aplikasi, UI pemutar media akan muncul dan kita dapat mengklik tombol putar untuk mulai memutar file video. Kita juga bisa mengklik tombol stop untuk berhenti memutar file video.

Langkah 4: Menyiapkan pemutar media Anda

Sekarang kita memiliki pemutar media yang berfungsi, kita dapat menyesuaikannya sesuai keinginan kita. Kita dapat mengubah tata letak antarmuka pengguna, mengubah file video yang sedang diputar, menambahkan tombol tambahan untuk mengatur volume, atau menambahkan bilah kemajuan untuk menunjukkan kemajuan video.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION