为了将来参考,这里有一个使用 Google Guava 的解决方案。
一些设置代码从问题的字符串创建列表:
String stringsString = "String1-1, String5, String6, String1-2, String5, String6, String1-3, String5, String6";
String[] stringsArray = stringsString.split(", ");
Iterable<String> stringsList = Arrays.asList(stringsArray);
现在过滤掉不需要的项目:
Iterable<String> filtered = Iterables.filter(stringsList, new Predicate<String>() {
@Override
public boolean apply(String input) {
return !input.startsWith("String1-");
}
});
这个简单的例程创建一个Iterable
只包含您指定的元素的新例程。这样做的美妙之处在于它是惰性执行的(仅在您真正想要使用它时才评估)并且它不会修改原始集合。在大多数情况下,使您的软件状态不可变(不可修改)是您能做的最好的事情。处理可变集合很困难,它们通常是软件错误的原因。