4 Cara Golek Duplikat ing Dhaftar Jawa
Sumber: Codippa Artikel iki nyakup macem-macem cara kanggo nemokake duplikat ing Dhaptar. Kita nelpon unsur duplikat sing katon luwih saka sepisan.1. Nggunakake Set
Ing ngisor iki minangka algoritma kanggo nemokake unsur duplikat ing Dhaftar Jawa nggunakake Set .- Kita nggawe obyek Setel Jawa anyar lan ArrayList anyar kanggo nyimpen unsur duplikat.
- Kita nindakake pengulangan utawa daur ulang liwat dhaptar.
- We nambah saben unsur ing dhaftar kanggo Set nggunakake add () cara .
- Akibaté, nambah () ngasilake bener yen unsur ditambahake, lan palsu yen unsur wis ana ing Set .
- Yen unsur wis ana ing Set , iku duplikat. Banjur kita nambah menyang ArrayList .
- Ing pungkasan iterasi, ArrayList anyar bakal ngemot kabeh unsur duplikat saka Dhaptar asli ( Dhaptar ).
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]
Elinga yen kita nggunakake forEach () cara kanggo iterate liwat List , nanging sampeyan bisa nggunakake sembarang cara liyane.
2. Nggunakake Peta
Ing ngisor iki ana langkah-langkah algoritma kanggo cara nemokake duplikat ing Daftar .- Nggawe obyek Peta anyar lan ArrayList anyar kanggo nahan unsur duplikat.
- Tombol Peta iki bakal dadi unsur saka Dhaptar asli , lan nilai-nilai kasebut bakal dadi jumlah kedadeyan ing Dhaptar kasebut .
- Loop liwat dhaptar ( Dhaptar ).
- Kanggo saben unsur ing Dhaftar , mriksa apa iku ana minangka tombol ing Peta nggunakake containsKey () cara .
- Yen ana, nambah nilai ing Peta lan nambah maneh nggunakake cara put () .
- Yen ora ana, tambahake menyang Peta kanthi nilai 1.
- Sawise iterasi dhaptar rampung, kabeh unsur Peta kanthi nilai luwih saka 1 dadi duplikat.
- Pungkasan, ulangi Peta lan tambahake unsur sing nilai luwih saka 1 menyang dhaptar kanggo nyimpen unsur duplikat.
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. Nggunakake puteran nested
Yen sampeyan dijaluk nemokake unsur duplikat ing dhaptar tanpa nggunakake kelas Koleksi kaya Set , Peta lan liya-liyane, mula cara iki bakal migunani. Fase algoritma:- Loop liwat dhaptar ( Dhaptar ).
- Sawise daur ulang wis rampung pisanan, bali menyang wiwitan lan baleni langkah maneh kanggo nemokake saben item ing liyane dhaftar.
- Yen unsur daur ulang saiki padha karo unsur sing isih ana, iku duplikat.
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. Nggunakake Java Stream
Cara iki adhedhasar Java 8 threads lan dianggo kaya iki:- Ngonversi Dhaptar menyang Stream .
- Ngonversi stream menyang Peta nggunakake cara ngumpulake () . Contone, kunci yaiku saben unsur ing dhaptar, lan nilai yaiku jumlah kedadeyan.
- Cara ngumpulake () bali lan Map njupuk Kolektor minangka argumen. Implementasi Kolektor nemtokake kunci lan nilai saka Peta sing diasilake .
- Amarga kita pengin tombol Peta minangka unsur saka Dhaftar lan nilai-nilai kasebut minangka jumlah kedadeyane, kita bisa nggunakake Collectors.groupingBy() kanggo nggawe kolektor .
- Sawise Peta wis digawe nggunakake groupingBy () , nggunakake cara entrySet () kanggo njupuk pesawat saka Map.Entry obyek .
- Nyaring cathetan adhedhasar nilai (yaiku, jumlah kedadeyan) luwih saka 1.
- Cocokake cathetan sing disaring karo kuncine.
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());
Cara groupingBy () digunakake kanggo klompok item ing koleksi adhedhasar kritéria tartamtu. Mangkene conto cara kerjane metode iki:
- Kriteria kasebut diwenehake minangka ekspresi lambda amarga groupingBy () njupuk argumen Fungsi , yaiku antarmuka fungsi.
- Ing kasus iki, dikelompokake miturut fungsi identitas n -> n , sing tegese kita ngelompokake unsur dhaptar kanthi nilai.
- Argumentasi kapindho kanggo groupingBy () yaiku kolektor liyane sing nemtokake cara unsur ing saben klompok kudu digabung.
- Kene kita nggunakake Collectors.counting () kang nggawe Peta ngemot count saben unsur ing dhaftar.
Carane Nggawe Media Player Prasaja Nggunakake Java
Sumber: Sedheng Tutorial iki bakal mbantu nggawe pamuter media prasaja ing Jawa kanggo muter file audio lan video. Ngembangake pamuter media bisa dadi cara sing apik kanggo sinau babagan nggunakake perpustakaan sing dibangun ing Jawa kanggo nggarap file media. Kanggo ngrampungake tugas iki, kita bakal nggunakake JavaFX lan toolkit Graphical User Interface (GUI) kanggo Java.Langkah 1: Persiyapan Proyek
Kaping pisanan, kita kudu nyiyapake proyek Java. Kita bakal nggunakake Eclipse minangka IDE, nanging sampeyan bisa nggunakake IDE apa wae sing sampeyan pilih. Gawe proyek Java anyar lan jenenge "MediaPlayer". Kita uga kudu nambah perpustakaan JavaFX menyang proyek kita. Kanggo nindakake iki, pindhah menyang properti proyek lan tambahake perpustakaan JavaFX menyang path mbangun proyek.Langkah 2: Nggawe Antarmuka Panganggo
Sabanjure kita bakal nggawe antarmuka pangguna kanggo pamuter media kita. Iku bakal dadi antarmuka panganggo prasaja karo tombol play, tombol mandeg lan panel pamuter media sing nampilake video utawa file audio sing arep kita muter. Kanggo antarmuka kita bakal nggunakake tata letak BorderPane . Panel pamuter media bakal ana ing tengah BorderPane, lan tombol play lan stop bakal ana ing sisih ngisor BorderPane. Iki kode UI: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);
}
}
Ing kode iki, kita nggawe rong tombol: playButton lan stopButton . Nalika tombol play diklik, kita nelpon cara play () obyek mediaPlayer . Nalika tombol mandeg diklik, kita nelpon cara mandeg () obyek mediaPlayer . Kita uga nggawe obyek Media kanthi URL conto file video lan obyek mediaPlayer kanthi obyek Media . Pungkasan, kita nggawe obyek MediaView karo obyek MediaPlayer lan nyetel minangka pusat BorderPane .
GO TO FULL VERSION