Java: Comment trier une liste en utilisant foreach?

isebastianvp:

J'ai essayé de trier une liste filtrée une fois que je l'utilise foreach en Java, mais je ne peux pas. Quelqu'un pourrait-il me aider? S'il vous plaît. Voici le code que je l'ai et je dois trier:

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

Voilà ce que je reçois une fois que je l'imprimer:

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

Merci beaucoup!

Skwat:

Vous ne pouvez pas trier une liste tout simplement itérer il. Parce que vous ne pouvez pas décider si elle est la bonne position d'un élément d'imprimer sans savoir ce qui est en avance dans la liste. Donc

Vous devez le faire en 2 étapes -

  1. Premier filtre la liste
  2. Trier la liste filtrée en utilisant un comparateur

    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());
    }
    

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=284520&siteId=1
conseillé
Classement