使用Java实现字符串数组的有效方法"in in"方法

IVR*_*ger 7 java arrays string search pattern-matching

我需要提供从高度无结构的Web服务中挑选的高度结构化的信息.为了正确显示信息,我必须做很多String匹配和重复删除,以确保我选择正确的元素组合.

我的一个挑战涉及确定String是否在字符串数组中.

我的梦想是做"searchString.isIn(stringArray);" 但我意识到String类没有提供.

除了这个存根之外还有更有效的方法吗?:

private boolean isIn(String searchString, String[] searchArray)
{
  for(String singleString : searchArray)
  {
    if (singleString.equals(searchString)
      return true;
  }

  return false;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Zac*_*h L 11

您可能希望查看HashMapHashSet,它们都提供恒定的时间检索,并且它就像前进一样简单:

hashSet.contains(searchString)
Run Code Online (Sandbox Code Playgroud)

此外,HashSet(及其键的HashMap)可防止重复元素.

如果你需要按照插入的顺序保留它们,你可以查看它们的Linked对应物,如果你需要对它们进行排序,TreeSet和TreeMap可以提供帮助(但是请注意,TreeSet和TreeMap 提供恒定的时间检索) .