如何比较ArrayList中舍入的长值和长值?

时间:2013-06-28 12:11:59

标签: java

我是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++;
}

2 个答案:

答案 0 :(得分: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);
            }
        }
    }
}

希望这有帮助!

最诚挚的问候,Goatcat

答案 1 :(得分:1)

您可以使用Guava library

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

您可以找到更多信息here