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

Compare list of numbers to see if they match in Android

我有一个数字列表,在该列表中我想检查是否有任何数字匹配,如果是 return '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;
    }

你是这么想的吗?

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;
}

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

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