Java中数组中的If x

Java中数组中的If x,java,Java,在python中,可以使用非常简单的if语句查看用户输入的内容(或只是变量)是否在列表中: myList = ["x", "y", "z"] myVar = "x" if myVar in x: print("your variable is in the list.") 如何在Java中实现这一点?如果您的数组类型是引用类型,则可以使用Arrays.asList(T..)将其转换为列表,并检查它是否包含元素 if (Arrays.asList(array).contains("wh

在python中,可以使用非常简单的if语句查看用户输入的内容(或只是变量)是否在列表中:

myList = ["x", "y", "z"]
myVar = "x"

if myVar in x:
    print("your variable is in the list.")

如何在Java中实现这一点?

如果您的数组类型是引用类型,则可以使用
Arrays.asList(T..)
将其转换为
列表
,并检查它是否包含元素

if (Arrays.asList(array).contains("whatever"))
    // do your thing
这里有一个解决方案

String[] myArray = { "x", "y", "z" };
String myVar = "x";
if (Arrays.asList(myArray).contains(myVar)) {
    System.out.println("your variable is in the list.");
}
产出是,

your variable is in the list.

您可以遍历数组并进行搜索,但我建议使用
Set
集合

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 mySet=new HashSet();
mySet.add(“x”);
mySet.add(“y”);
添加(“z”);
字符串myVar=“x”;
if(mySet.contains(myVar)){
System.out.println(“您的变量在列表中”);
}

Set.contains()
O(1)
中进行计算,在最坏的情况下,遍历
数组进行搜索需要
O(N)

您可以自己迭代数组,而不是调用Arrays类

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中只不过是一个字符数组。就是

String word = "dog";
实际上存储为

char[] word = {"d", "o", "g"};
因此,如果调用if(letter==myVar),它将永远不会返回true,因为它只是查看JVM中的引用id。这就是为什么我在上面的代码中使用

if(letter.equals(myVar)) { }
if(letter.equals(myVar)) { }