我将某些对象存储在 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 ,因为其中一个 pog 满足条件(我想)
答案 0 :(得分:0)
当您的 if 条件满足时,您将发出整个列表:
if (dog.getTownLength() >= listTownLength) {
System.out.println(listOftowns);
}
相反,发出满足条件的元素:
if (dog.getTownLength() >= listTownLength) {
System.out.println(dog);
}
答案 1 :(得分:-1)
您可以在这种情况下使用过滤器:
listOfDogs.stream()
.filter(dog -> dog.tailLength >= listTailLength)
.forEach(System.out::println);
如果没有,您始终可以在现有的 for 循环中添加 if 条件。