比较数字列表以查看它们是否在Android中匹配

时间:2015-04-19 19:44:03

标签: android match

我有一个数字列表,在该列表中我想检查是否有任何数字匹配,如果是,则返回' true'。基本上,我想检查的是数字是否匹配,然后不保存。我有一个看似非常低效的方法来检查。任何帮助将不胜感激,谢谢!

if (mFav1Compare == mNumber1Compare || mFav1Compare == mNumber2Compare || mFav1Compare == mNumber3Compare || mFav1Compare == mNumber4Compare || mFav1Compare == mNumber5Compare) {
        return true;
    }

    if (mFav2Compare == mNumber1Compare || mFav2Compare == mNumber2Compare || mFav2Compare == mNumber3Compare || mFav2Compare == mNumber4Compare || mFav2Compare == mNumber5Compare) {
        return true;
    }

    if (mFav3Compare == mNumber1Compare || mFav3Compare == mNumber2Compare || mFav3Compare == mNumber3Compare || mFav3Compare == mNumber4Compare || mFav3Compare == mNumber5Compare) {
        return true;
    }

    if (mFav4Compare == mNumber1Compare || mFav4Compare == mNumber2Compare || mFav4Compare == mNumber3Compare || mFav4Compare == mNumber4Compare || mFav4Compare == mNumber5Compare) {
        return true;
    }

    if (mFav5Compare == mNumber1Compare || mFav5Compare == mNumber2Compare || mFav5Compare == mNumber3Compare || mFav5Compare == mNumber4Compare || mFav5Compare == mNumber5Compare) {
        return true;
    }

2 个答案:

答案 0 :(得分:2)

如果您有两个列表,并且想知道第二个列表是否包含第一个列表中的至少一个元素,您可以尝试

public <T> boolean listMatches(List<T> list1, List<T> list2) {
    for (T element : list1) {
        if (list2.contains(element)) {
            return true;
        }
    }
    return false;
}

答案 1 :(得分:0)

你觉得这个吗?

ArrayList<Integer>listNumbers = new ArrayList<>();

listNumbers.add(99);
listNumbers.add(99);
listNumbers.add(11);
listNumbers.add(10);
for(int i = 0; i < listNumbers.size(); i++){
    if(!listCheck(listNumbers.get(i))){
      //save something
    }

}

和这个方法

private boolean listCheck(int number){

  for(int i = 0; i < listNumbers.size(); i++){
     if(number == listNumbers.get(i)){
        return true;
     }
  }
  return false;
}