Java-比较值数组
有没有更简单的方法来比较这些字符串而不使用循环 试试下面的代码Java-比较值数组,java,arrays,compare,Java,Arrays,Compare,有没有更简单的方法来比较这些字符串而不使用循环 试试下面的代码 String isoArray[] = {"020","784","004","028"}; if(!("020".equals(element[2]) || "784".equals(element[2]) || "004".equals(element[2]) || "028".equals(element[2]))){ country a = new country(element[4], eleme
String isoArray[] = {"020","784","004","028"};
if(!("020".equals(element[2]) || "784".equals(element[2]) || "004".equals(element[2]) || "028".equals(element[2]))){
country a = new country(element[4], element[5], element[7]);
countries.add(a);
}
试试下面的代码
String isoArray[] = {"020","784","004","028"};
if(!("020".equals(element[2]) || "784".equals(element[2]) || "004".equals(element[2]) || "028".equals(element[2]))){
country a = new country(element[4], element[5], element[7]);
countries.add(a);
}
如果您使用的是Java 7,那么您也可以在字符串常量上使用开关大小写。如果您使用的是Java 7,那么您也可以在字符串常量上使用开关大小写。如果不知道问题的背景,很难给出答案 比较/搜索/组织数组最流行的方法(也是广泛教授的方法)是使用循环。一个这样的解决方案是气泡排序alg型循环
if (Arrays.asList(isoArray).contains("YOUR_STRING"))
for(int x=0;x
这是使用多个数组进行简单操作的最快方法,在不了解问题背景的情况下,很难给出答案 比较/搜索/组织数组最流行的方法(也是广泛教授的方法)是使用循环。其中一种解决方案是气泡排序alg类型的循环
if (Arrays.asList(isoArray).contains("YOUR_STRING"))
for(int x=0;x
这是迄今为止对多个阵列执行简单操作的最快方法。看起来您要使用的类型是一个集合
for(int x = 0; x < array1.size(); x++){
for(int y = 0; y < array2.size(); y++){
if(array1[x].compare(array2[y]==0)
Then they are equal
else
They are not equal
}
}
Set mySet=new HashSet();
mySet.add(“020”);
mySet.add(“784”);
mySet.add(“004”);
mySet.add(“028”);
如果(!mySet.contains(元素[2])){
a国=新国家(要素[4]、要素[5]、要素[7]);
添加(a);
}
将使用哈希查找值HashSet
将执行二叉树搜索TreeSet
for(int x = 0; x < array1.size(); x++){
for(int y = 0; y < array2.size(); y++){
if(array1[x].compare(array2[y]==0)
Then they are equal
else
They are not equal
}
}
Set mySet=new HashSet();
mySet.add(“020”);
mySet.add(“784”);
mySet.add(“004”);
mySet.add(“028”);
如果(!mySet.contains(元素[2])){
a国=新国家(要素[4]、要素[5]、要素[7]);
添加(a);
}
将使用哈希查找值HashSet
将执行二叉树搜索TreeSet
元素[2]
是否包含在一个值数组中。正如@Real所说,您可以将数组转换为一个列表,这样您就可以使用列表的包含谓词。猜怎么着?包含谓词只是一个循环
我鄙视这种包含大量免费转换的代码。它会产生垃圾。正是这种代码今天运行良好,因为您的数据大小为N
,五年后,当您的公司上市,数据大小为100000*N
时,它就会消亡。不要随它一起消亡
因此,选择是显而易见的。您可以使用带有单个转换的ArrayList
,从一开始就保存阵列:
Set<String> mySet = new HashSet<String>();
mySet.add("020");
mySet.add("784");
mySet.add("004");
mySet.add("028");
if(!mySet.contains(element[2])){
country a = new country(element[4], element[5], element[7]);
countries.add(a);
}
您需要将这样的实用程序函数合并到一个名为(tada!)utility
的类中(大部分是静态函数)。顺便说一下,这就是上帝给我们循环和函数的原因。现在
static public boolean contains(Object [] a, Object item) {
for (Object aItem : a) if (item.equals(aItem)) return true;
return false;
}
世界上一切都好
如果可以按排序顺序排列值表,还有另一种方法:使用数组
二进制搜索例程
String isoArray[] = {"020", "784", "004", "028"};
...
if (!contains(isoArray, element[2])) {
country a = new country(element[4], element[5], element[7]);
countries.add(a);
}
我的朋友,从您的示例来看,您似乎在尝试查看元素[2]
是否包含在一个值数组中。正如@Real所说,您可以将数组转换为一个列表,这样您就可以使用列表的包含谓词。猜猜看,该包含谓词只是一个循环
我鄙视这种包含大量免费转换的代码。它会产生垃圾。正是这种代码今天运行良好,因为您的数据大小为N
,五年后,当您的公司上市,数据大小为100000*N
时,它就会消亡。不要随它一起消亡
因此,选择是显而易见的。您可以使用带有单个转换的ArrayList
,从一开始就保存阵列:
Set<String> mySet = new HashSet<String>();
mySet.add("020");
mySet.add("784");
mySet.add("004");
mySet.add("028");
if(!mySet.contains(element[2])){
country a = new country(element[4], element[5], element[7]);
countries.add(a);
}
您需要将这样的实用程序函数合并到一个名为(tada!)utility
的类中(大部分是静态函数)。顺便说一下,这就是上帝给我们循环和函数的原因。现在
static public boolean contains(Object [] a, Object item) {
for (Object aItem : a) if (item.equals(aItem)) return true;
return false;
}
世界上一切都好
如果可以按排序顺序排列值表,还有另一种方法:使用数组
二进制搜索例程
String isoArray[] = {"020", "784", "004", "028"};
...
if (!contains(isoArray, element[2])) {
country a = new country(element[4], element[5], element[7]);
countries.add(a);
}
循环有什么问题。理解你的原因可能有助于回答问题。在if语句中进行大量比较被认为是一种不好的做法。这种做法非常丑陋、容易出错且难以阅读。你总是有更好的方法来实现同一目标。循环有什么问题。理解你的原因可能有助于回答问题。在if语句中进行大量比较语句被认为是一种不好的做法。它非常难看,容易出错,而且很难阅读。您总是有更好的方法来实现相同的目标。请注意,.contains()
的实现可能使用循环软件,而.contains()
的实现可能使用循环