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中有类似的方法吗?
标准API中没有"过滤器"功能.(但是在Guava和Apache Commons中.)你必须创建一个新列表,遍历原始列表并手动将范围25-35中的元素添加到新列表中.
如果您无意保留原始列表,则可以使用Iterator和Iterator.remove方法删除元素超出范围.
如果列表中没有重复项,则可以使用a,TreeSet在这种情况下,您可以使用headSet/ 获取特定范围内的所有元素tailSet.
相关问题:(实际上甚至可能重复)
好吧,有了番石榴你可以写:
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)
你可以使用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)