我想知道在Java中是否有办法做这样的事情:
if(word in stringArray) {
...
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以为此创建一个函数,但我只是想知道Java是否已经有了这个功能.
谢谢!
jjn*_*guy 21
有许多集合可以让你做类似的事情.例如:
用Strings:
String s = "I can has cheezeburger?";
boolean hasCheese = s.contains("cheeze");
Run Code Online (Sandbox Code Playgroud)
或者Collections:
List<String> listOfStrings = new ArrayList<String>();
boolean hasString = listOfStrings.contains(something);
Run Code Online (Sandbox Code Playgroud)
但是,没有类似的简单构造String[].
pol*_*nts 13
Java语言设计强大但也很简单.Java语言级别没有这样的运算符,但是为了方便这样的查询,肯定编写了库.
如果你想知道某个对象是否是某些对象集的成员,那么你应该使用 - 还有什么?- a Set.这些数据结构自然允许这样的查询,更好的是,它们针对此类查询进行了优化.
您可以轻松检查给定的字符串是否Set<String>如下所示:
String[] arr = { "Alice", "Bob", "Carol" };
Set<String> names = new HashSet<String>(Arrays.asList(arr));
System.out.println(names.contains("Alice")); // true
System.out.println(names.contains("Dean")); // false
Run Code Online (Sandbox Code Playgroud)
使用HashSet,contains是一个固定时间操作.这比通过数组的线性搜索要好得多.
您应该熟悉Java Collections Framework为您提供的数据结构.它们允许您编写惯用的,可维护的,灵活的代码,并且可以使用这些数据结构的许多强大算法.
小智 12
在SQL中
x in ('Alice', 'Bob', 'Carol')
Run Code Online (Sandbox Code Playgroud)
在Java中:
Arrays.asList("Alice", "Bob", "Carol").contains(x)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35687 次 |
| 最近记录: |