检查字符串的ArrayList是否逐个包含50个不同的字符串

时间:2015-01-15 08:56:31

标签: android arrays string arraylist

如何检查字符串的ArrayList是否逐一包含字符串数组中的50个不同的字符串,以及ArrayList中的每个相同的字符串都能做什么?

2 个答案:

答案 0 :(得分:4)

您可以使用此函数检查数组中的所有字符串是否也在ArrayList中。如果你想在每次匹配时添加额外的逻辑,比如doSomething(),你应该能够轻松地调整代码。

ArrayList myList; // let's assume its initialized and filled with Strings
String[] strArray; // let's assume its initialized and filled with Strings

//this function returns true if all Strings in the array are also in your arraylist

public boolean containsAll(myList, strArray){
  //iterate your String array
  for(int i = 0; i < strArray.length; i++){
    if(!myList.contains(strArray[i])){
      //String is not in arraylist, no need to check the rest of the Strings
      return false;
    }
  }
 return true; 
}

答案 1 :(得分:2)

为什么不使用LINQ?

    List<String> duplicates = YourList.GroupBy(x => x)
                         .Where(g => g.Count() > 1)
                         .Select(g => g.Key)
                         .ToList();

请注意,这将返回新List<string>中的所有重复项,因此,如果您只想知道源列表中哪些项重复,则可以对结果序列应用Distinct或使用上面给出的解决方案