首页 > 解决方案 > 循环遍历 Arraylist 并显示满足 Java 条件的对象

问题描述

我将某些对象存储在 ArrayList 中。每个对象都有 5 个变量(两个字符串、两个整数和一个双精度)。

我正在尝试编写的方法将要求用户输入一个值(双精度)。然后它将显示 ArrayList 中的所有对象,其双精度等于或大于用户输入的双精度。

我一直在尝试使用 for: each 循环,但我不知道如何向其中添加任何条件,以便获得我想要的结果。

关于如何像这样对 ArrayList 进行排序的任何提示都会非常棒,我真的被卡住了。arrayList 称为 listOfthings 并包含 String nam、String bread、int alt、int wegtt 和 double townLength(这是我希望它用作条件的值)这是我到目前为止的代码:

public void sortmogs() {
        System.out.println("Smallest thing to display?>");
        listTownLength = Input.readInt();
        
        for (Mog mog : listOftowns) {
            if (dog.getTownLength() >= listTownLength) {
            System.out.println(listOftowns);
               }
          }
}

但是,如果我将两个城镇添加到列表中,城镇长度分别为 2.5 和 5,然后添加用户输入 3,它会显示整个 arrayList ,因为其中一个 pogs 满足条件(我想)

标签: javaarraylist

解决方案


当您的 if 条件满足时,您将发出整个列表:

if (dog.getTownLength() >= listTownLength) {
  System.out.println(listOftowns);
}

相反,发出满足条件的元素:

if (dog.getTownLength() >= listTownLength) {
  System.out.println(dog);
}

推荐阅读