Java integer ArrayList返回特定范围内的元素

Kri*_*dra 3 java search arraylist filter

我有一个整数的java ArrayList

ArrayList <Integer> ageList  = new ArrayList <Integer>();
Run Code Online (Sandbox Code Playgroud)

我在这个arrayList中有一些整数值.我想创建一个新的ArrayList,其中包含上面arrayList中传递条件的所有元素,例如25到35之间的值.即如果我的ageList包含值

{} 12,234,45,33,28,56,27

我的newList应该包含

{33,28,27}

我怎样才能做到这一点?

注意:我从目标C背景来到java,在那里我使用NSPredicate来轻松地做这样的事情.在Java中有类似的方法吗?

aio*_*obe 7

标准API中没有"过滤器"功能.(但是在GuavaApache Commons中.)你必须创建一个新列表,遍历原始列表并手动将范围25-35中的元素添加到新列表中.

如果您无意保留原始列表,则可以使用IteratorIterator.remove方法删除元素超出范围.

如果列表中没有重复项,则可以使用a,TreeSet在这种情况下,您可以使用headSet/ 获取特定范围内的所有元素tailSet.

相关问题:(实际上甚至可能重复)


Jon*_*eet 6

好吧,有了番石榴你可以写:

Iterable<Integer> filtered = Iterables.filter(list, new Predicate<Integer>() {
    @Override public boolean apply(Integer value) {
        return value >= 25 && value <= 35;
    }
});
List<Integer> newList = Lists.newArrayList(filtered);
Run Code Online (Sandbox Code Playgroud)


use*_*882 5

你可以使用foreach循环

List<Integer> newList = new ArrayList<Integer>();
for (Integer value : ageList) {
    if (value >= 25 && value <= 35) {
        newList.add(value);
    }
}
Run Code Online (Sandbox Code Playgroud)