开发者社区> 问答> 正文

Java:如何使用foreach对列表进行排序?

一旦在Java中使用foreach,我就一直试图对过滤列表进行排序,但是我不能。有人可以帮我吗?请。这是我的代码,我应该排序:

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

这是我打印后得到的:

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

非常感谢你!

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 16:47:07 1033 0
2 条回答
写回答
取消 提交回答
  • 个人对建模比较关注

    Collotions.sort(list,排序规则)即可

    2020-03-25 17:19:22
    赞同 展开评论 打赏
  • 您不能在对列表进行迭代时对其进行排序。因为您无法在不知道列表中的前面的情况下就确定要打印的项目的正确位置。所以

    您必须分两步完成-

    1. 首先过滤列表
    2. 使用比较器对过滤列表进行排序
    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());
    }
    

    回答来源:Stack Overflow

    2020-03-25 16:47:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载