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()
的实现可能使用循环