If x in array in Java
在Python中,可以使用非常简单的if语句来查看用户输入的内容(或仅变量)是否在列表中:
1 2 3 4 5
| myList = ["x","y","z"]
myVar ="x"
if myVar in x:
print("your variable is in the list.") |
我怎样才能在Java中做到这一点呢?
如果数组类型是引用类型,则可以使用Arrays.asList(T...)将其转换为List,并检查它是否包含元素
1 2
| if (Arrays. asList(array ). contains("whatever"))
// do your thing |
与其调用array类,不如自己迭代数组
1 2 3 4 5 6 7 8 9
| String[] array = {"x", "y", "z"};
String myVar ="x";
for(String letter : array )
{
if(letter. equals(myVar )
{
System. out. println(myVar +" is in the list");
}
} |
记住,字符串只不过是Java中的字符数组。那就是
实际存储为
1
| char[] word = {"d","o","g"}; |
因此,如果您调用if(letter==myvar),它将永远不会返回true,因为它只是查看JVM中的引用ID。这就是我在上面的代码中使用的原因
1
| if(letter.equals(myVar)) { } |
这里有一个解决方案,
2
输出是
1
| your variable is in the list. |
1 2 3 4 5
| String[] array = {"x", "y", "z"};
if (Arrays. asList(array ). contains("x")) {
System. out. println("Contains!");
} |
您可以遍历数组和搜索,但我建议使用Set集合。
1 2 3 4 5 6 7 8 9
| Set <String > mySet = new HashSet <String >();
mySet. add("x");
mySet. add("y");
mySet. add("z");
String myVar ="x";
if (mySet. contains(myVar )) {
System. out. println("your variable is in the list");
} |
Set.contains()在O(1)中进行评估,在最坏的情况下,遍历array进行搜索可以取O(N)。