簡體   English   中英

Java Collections使用正則表達式過濾元素

[英]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());

也有允許過濾集合的第三方庫:

鏈接的Javadoc描述准確地解釋了每種方法如何進行過濾(即,它是修改給定的集合還是返回新的集合)。


或簡單地使用for循環( 及之前版本):

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM