-4

私はJavaの初心者です。次のような状況があります。

ArrayListユーザー{10234, 20233, 34546, 43546, 59865, 70002, 92435, 200354}
入力20000と_50000

そして、20000 から 50000 の間の ArrayList から値を取得したいのですが、この場合、答えとして 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 ライブラリを使用できます。

IterablesおよびRangeクラスは、タスクを解決できます

標本、見本:

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 に答える