【发布时间】:2011-08-05 05:15:39
【问题描述】:
我需要过滤大小为 1000 或更大的列表并从中获取子列表。 我不想使用迭代器。
1) 目前我正在迭代列表并使用 Java 进行比较。这是一项耗时的任务。我需要提高代码的性能。
2) 我也尝试使用 Google Collections(Guava),但我认为它也会在后台迭代。
Predicate<String> validList = new Predicate<String>(){
public boolean apply(String aid){
return aid.contains("1_15_12");
}
};
Collection<String> finalList =com.google.common.collect.Collections2.filter(Collection,validList);
谁能建议我如何在不迭代的情况下更快地获得子列表,或者如果使用迭代器,我会相对更快地获得结果。
【问题讨论】:
-
1000 并不是一个很大的数字。而且它是一个顺序访问的列表,迭代是不可避免的。
-
我认为迭代器在过滤过程中是不可避免的,因为必须检查每个元素。
-
@Nivas:你的评论应该是一个答案
-
@Jim Garrison,事后看来,是的。但正如其他人的回答一样,我不要。无论如何现在都没有增加多少价值。
标签: java collections guava