Java 是否可能找到字符串数组值是否等于任何随机类型的字符串?
假设我得到了这个数组: 字符串[][]数组=新字符串[5][5] 数组[2][2]=绝望 有没有可能找到 字符串s=“绝望”;-等于任何数组元素,无需使用for循环,也无需手动输入指定值为“desirect”的数组的行-列组合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("...")) {
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),我们对其进行迭代以获得每个元素..出于好奇:您需要二维字符串数组做什么?出于好奇:您需要二维字符串数组做什么?