![](/img/trans.png)
[英]Using a regular expression for FILTER with Pig Latin (or java in general)
[英]Java Collections to filter element using regular expression
我正在尋找java API中是否有一個集合,在這里我能夠檢索以某些給定文本開頭的元素。
例如,如果我在集合中具有以下元素
abc
abbb
adf
abab
dfg
cfg
如果我鍵入“ a”,則它將返回以字符“ a”開頭的所有元素。
您不需要正則表達式。 在Java 8之前的版本中:
Collection<String> strings; // given this
String filter = "a";
for (Iterator<String> i = strings.iterator(); i.hasNext();)
if (i.next().startsWith(filter))
i.remove();
沒有可以立即進行過濾的集合,但是您可以執行一個簡單的管道(需要Java 8):
filteredList = collection.stream()
.filter(e -> e.startsWith("a"))
.collect(Collectors.toList());
也有允許過濾集合的第三方庫:
Collections2#filter
。 ColectionUtils#filter
。 鏈接的Javadoc描述准確地解釋了每種方法如何進行過濾(即,它是修改給定的集合還是返回新的集合)。
或簡單地使用for
循環( java-7及之前版本):
List<String> filteredList = new ArrayList<String>();
for(Iterator<String> iterator = collection.iterator(); iterator.hasNext();) {
String str = iterator.next();
if(str.startsWith("a")) {
filteredList.add(str);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.