簡體   English   中英

檢查ArrayList是否 <String> 包含字符串的一部分

[英]Check if ArrayList<String> contains part of a string

說我有一個ArrayList:

<string1.4>
<string2.4>
<string3.4>

我希望在我說arrayList.containsSubString('string1');時返回arrayList的第一個元素。 除了遍歷arrayList每個元素並檢查string1是否是該元素字符串的子字符串之外, arrayList

我能想到的唯一方法是執行以下操作:

strs.get(strs.indexOf(new Object() {
    @Override
    public boolean equals(Object obj) {
        return obj.toString().contains(s);
    }
}));

不知道這是否被認為是好的做法。

對於ArrayList,除了對其進行遍歷之外沒有其他選擇。 但是您可以使用其他數據結構,例如前綴樹(例如三元搜索樹 ,請參閱此Java示例 )。

不行 即使存在List.contains()的等效項,它也只能在后台進行線性搜索。

我認為遍歷列表並檢查每個項目是最快的方法。 這也是每個人都理解您的代碼的方式。 (除了構建自己的數據結構外)。


無論如何,您也可以使用org.apache.commons.collections.CollectionUtils#find(Collection, Predicate)

find(java.util.Collection collection, Predicate predicate)查找給定集合中與給定謂詞匹配的第一個元素。

您可以使用NavigableSet

NavigableSet<String> set = new TreeSet<String>();
// add strings

String find =
String firstMatch = set.ceiling(find);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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