假设我得到了这个数组:
字符串[][]数组 = 新字符串[5][5];
数组[2][2] = 绝望;
能不能查到
字符串 s = "绝望"; - 等于任何数组元素而不使用 for 循环,并且不必手动输入分配值“绝望”的数组的行列组合?
while
循环而不是 for 循环
int i = 0;
int j = 0;
while (i < n)
{
while (j < m)
{
if (array[i][j].equals("..."))
{
///
}
j++;
}
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<String>
的方法是用来存储你的项目。然后你可以调用contains()
方法来检查列表是否包含该元素。
List<String> listString = new ArrayList<String>();
listString.add("desperate");
listString.add("despe");
if (listString.contains("desperate")) {
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);
}
比将其转换为 a 更好,List
因为 HashSet 的contains()
方法是O(1),而 fromList
是 O(n)。
避免使用循环的唯一方法(不清楚为什么要这样做)是使用预先构建的包含所有字符串和索引的 Map。