使用Arrays.asList并进行比较

时间:2013-09-08 09:47:05

标签: android arrays string

我有一个类似下一个的数组:

this.ntpServers[0][0] = "Global";
this.ntpServers[0][1] = "pool.ntp.org";
this.ntpServers[1][0] = "Africa";
this.ntpServers[1][1] = "africa.pool.ntp.org";
this.ntpServers[2][0] = "Asia";
this.ntpServers[2][1] = "asia.pool.ntp.org";
this.ntpServers[3][0] = "Europe";
this.ntpServers[3][1] = "europe.pool.ntp.org";
this.ntpServers[4][0] = "North America";
...
this.ntpServers[85][0] = ...
this.ntpServers[85][1] = ...

我在另一个String中有一个国家,我正在尝试使用下一个代码来比较列表中是否存在,但是当它必须为真时,Iit不会返回true。如果我检查“亚洲”,那将是真的。但是出了点问题。

gettedCountry是一个字符串

public int existNTP(String[][] list) {

    if(Arrays.asList(list).contains(gettedCountry)){

        Log.i("Found", "Found");

        }

        return position;
    }

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

使用适当的对象将二维数组转换为列表(推荐)

OR

迭代你的数组:

int position = 0;
for (String[] entry : ntpServers) {
  if (entry[0].equals(country)) return position;
  ++position;
}

return -1; // Not found is an invalid position like -1

答案 1 :(得分:0)

Arrays.asList(list)将返回ArrayList String[]而不是String。如果您需要检查第一项:

ArrayList<String[]> arr=Arrays.asList(list);

for(String[] arry : arr){
  if(arry[0].equals(gettedCountry)) /* Do your stuff */;
}