Java 是否可能找到字符串数组值是否等于任何随机类型的字符串?

Java 是否可能找到字符串数组值是否等于任何随机类型的字符串?,java,arrays,loops,Java,Arrays,Loops,假设我得到了这个数组: 字符串[][]数组=新字符串[5][5] 数组[2][2]=绝望 有没有可能找到 字符串s=“绝望”;-等于任何数组元素,无需使用for循环,也无需手动输入指定值为“desirect”的数组的行-列组合 while循环而不是for循环 int i = 0; int j = 0; while (i < n) { while (j < m) { if (array[i][j].equals("...")) {

假设我得到了这个数组:

字符串[][]数组=新字符串[5][5]

数组[2][2]=绝望

有没有可能找到

字符串s=“绝望”;-等于任何数组元素,无需使用for循环,也无需手动输入指定值为“desirect”的数组的行-列组合


while
循环而不是for循环

int i = 0;
int j = 0;  
while (i < n)  
{  
   while (j < m)  
   {  
      if (array[i][j].equals("..."))
      {  
         /// 
      }  
      j++;
   }   
   i++;    
}  
inti=0;
int j=0;
而(i
while
循环而不是for循环

int i = 0;
int j = 0;  
while (i < n)  
{  
   while (j < m)  
   {  
      if (array[i][j].equals("..."))
      {  
         /// 
      }  
      j++;
   }   
   i++;    
}  
inti=0;
int j=0;
而(i
使用增强型for循环:-

String [][] array = new String[2][2];
array[1][1] = "desperate";
array[0][1] = "despee";
array[1][0] = "despete";
array[0][0] = "dete";

for (String[] innerArr: array) {
    for (String value: innerArr) {
         if (value.equals("desperate")) {
             System.out.println(value + " == desperate");
         }
    }
}
输出:-绝望==绝望

我建议的一种更好的方法是使用
ArrayList
存储您的物品。。然后可以调用
contains()
方法来检查列表是否包含该元素

List<String> listString = new ArrayList<String>(); 
listString.add("desperate");
listString.add("despe");

if (listString.contains("desperate")) {
     System.out.println("True");
}
List listString=new ArrayList();
添加(“绝望”);
添加(“despe”);
if(listString.contains(“绝望”)){
System.out.println(“真”);
}

输出:-True

使用增强for循环:-

String [][] array = new String[2][2];
array[1][1] = "desperate";
array[0][1] = "despee";
array[1][0] = "despete";
array[0][0] = "dete";

for (String[] innerArr: array) {
    for (String value: innerArr) {
         if (value.equals("desperate")) {
             System.out.println(value + " == desperate");
         }
    }
}
输出:-绝望==绝望

我建议的一种更好的方法是使用
ArrayList
存储您的物品。。然后可以调用
contains()
方法来检查列表是否包含该元素

List<String> listString = new ArrayList<String>(); 
listString.add("desperate");
listString.add("despe");

if (listString.contains("desperate")) {
     System.out.println("True");
}
List listString=new ArrayList();
添加(“绝望”);
添加(“despe”);
if(listString.contains(“绝望”)){
System.out.println(“真”);
}

输出:-True

避免使用循环的唯一方法(不清楚为什么要这样做)是使用一个预先构建的带有所有字符串和索引的映射。

避免使用循环的唯一方法(不清楚为什么要这样做)是使用预先生成的带有所有字符串和索引的映射。

假设您无法(出于任何原因)将数组更改为其他集合类型:

String[][]array = new String[5][5];
array[2][2] = "desperate"; 


public boolean contains(String str){
  return new HashSet<String>((List<String>)Arrays.asList(array)).contains(str);
}
String[][]数组=新字符串[5][5];
数组[2][2]=“绝望”;
公共布尔包含(字符串str){
返回新的HashSet((List)array.asList(array)).contains(str);
}
比将其转换为
列表更好,因为HashSet的
contains()
方法是O(1),而
列表中的方法是O(n)。

假设您不能(出于任何原因)将数组更改为另一个集合类型:

String[][]array = new String[5][5];
array[2][2] = "desperate"; 


public boolean contains(String str){
  return new HashSet<String>((List<String>)Arrays.asList(array)).contains(str);
}
String[][]数组=新字符串[5][5];
数组[2][2]=“绝望”;
公共布尔包含(字符串str){
返回新的HashSet((List)array.asList(array)).contains(str);
}

比将其转换为
列表更好,因为HashSet的
contains()
方法是O(1),而
列表中的方法是O(n)。

我不认为循环的风格真的是问题的关键,通常大多数人更喜欢循环,我不认为循环的风格是问题的关键,一般来说,大多数人更喜欢增强for循环中的for循环does(String[]innerArr:array)只搜索行数组?确切地说。。外部循环获取每一行。。它本身就是一个数组。。现在从外部循环获取变量(innerArr),我们对其进行迭代以获得每个元素。在增强的for循环中,(String[]innerArr:array)只搜索行数组吗?完全。。外部循环获取每一行。。它本身就是一个数组。。现在从外部循环中获取变量(innerArr),我们对其进行迭代以获得每个元素..出于好奇:您需要二维字符串数组做什么?出于好奇:您需要二维字符串数组做什么?