Saya sudah mencoba mengurutkan daftar yang difilter setelah saya menggunakan foreach di Jawa, tetapi saya tidak bisa. Bisakah seseorang membantu saya? Tolong. Ini adalah kode yang saya miliki dan saya harus mengurutkan:

List<Photo> photos = getAllPhoto();
String parteTitulo = "ipsam do";
for (Photo aux: photos){
    if(aux.getTitle().contains(parteTitulo)){
        System.out.println(aux.getTitle());
    }
}

Inilah yang saya dapatkan setelah saya mencetaknya:

placeat ipsam doloremque possimus sint autem laborum ea expedita
sed ut aut ipsam dolore
beatae ipsam dolores consequatur eum quia inventore sit
eos sapiente ipsam dolores accusamus est et nihil odio
consequatur iure est ullam ipsam dolorem nesciunt

Terima kasih banyak!

-3
isebastianvp 15 Maret 2020, 06:38

1 menjawab

Jawaban Terbaik

Anda tidak dapat mengurutkan daftar saat hanya mengulanginya. Karena Anda tidak dapat memutuskan apakah itu posisi yang tepat dari suatu item untuk dicetak tanpa mengetahui apa yang ada di depan dalam daftar. Begitu

Anda harus melakukannya dalam 2 langkah -

  1. Filter dulu daftarnya
  2. Urutkan daftar yang difilter menggunakan komparator

    List<Photo> photos = getAllPhoto();
    String parteTitulo = "ipsam do";
    
    List<Photo> filteredPhotos = new ArrayList<>();
    
    for (Photo aux : photos) {
        if (aux.getTitle().contains(parteTitulo)) {
            filteredPhotos.add(aux);
        }
    }
    
    filteredPhotos.sort((p1, p2) -> p1.getTitle().compareToIgnoreCase(p2.getTitle()));
    
    for (Photo aux : filteredPhotos) {
        System.out.println(aux.getTitle());
    }
    
1
shakhawat 15 Maret 2020, 04:22