-4

我是Java的初学者。我有以下情况:

ArrayList包含用户{10234, 20233, 34546, 43546, 59865, 70002, 92435, 200354}
输入和2000050000

我想从 ArrayList 中获取 20000 到 50000 之间的值,在这种情况下,我希望 20233、34546、43546 作为答案。

我该怎么做呢?

这是我到目前为止的代码:

int t1 = 20233, t2 = 59865;
int i = 0;
boolean foundt1, foundt2;
foundt1 = false;
found20 = false;
while (i < a.size && (!foundt2)) {
    if (a.get(i) == 10) {
        foundt1 = true;
    }
    if (foundt1) {
        System.out.println(a.get(i));
    }
    if (a.get(i) == 20) {
        foundt2 = true;
    }
    i++;
}
4

2 回答 2

2

这是您尝试执行的操作的示例。

import java.util.ArrayList;
import java.util.Arrays;

public class Test{
    public static void main(String[] args) {
        ArrayList<Integer> numberList = Arrays.asList(10234, 20233, 34546, 43546, 59865, 70002, 92435, 200354);

        for(int nbr : numberList){              //goes through the list
            if( nbr > 20000 && nbr < 50000){
                System.out.println(nbr);
            }
        }
    }
}

希望这可以帮助!

最好的问候,山羊猫

于 2013-06-28T12:14:55.603 回答
1

您可以使用Guava 库

IterablesRange类可以解决您的任务。

样品:

public static void main(String[] args) {
    List<Integer> values = Arrays.asList(10234, 20233, 34546, 43546, 59865, 70002, 92435, 200354);
    Iterable<Integer> filteredValues = Iterables.filter(values, Range.closed(20000, 50000));
    for (Integer val : filteredValues) {
        System.out.println(val);
    }
}

输出是:

20233
34546
43546

你可以在这里找到更多信息

于 2013-06-28T14:11:51.323 回答