Как сравнить два ArrayList в Java - PullRequest
1 голос
/ 22 июня 2019

Я делаю программу лото.

Как узнать, содержит ли один ArrayList все числа из другого ArrayList?

То, как я пытался.

ArrayList<String> newNumbers = new ArrayList<>();//Define Lotto Scope
ArrayList<String> resultNumbers = new ArrayList<>(); //Only 6 numbers 
ArrayList<String> includingNumbers= new ArrayList<>(); //Number to Include

 public void applyStaticNumbers(){

   for (int i = 1; i < 46; i++) {
        newNumbers.add("" + i);
    }

   Collections.shuffle(newNumbers);

    for (int i = 0; i < 6; i++) {
        resultNumbers.add(newNumbers.get(i));
    }

   resultNumbers.sort(Comparator.comparing(Double::parseDouble)); //sort Numbers

   if (resultNumbers.contains(includingNumbers.get(0))) {
        for (int i = 0; i < 6; i++) {
            textViews.get(i).setText(resultNumbers.get(i));
        }
    } else {//If not included, restart.
        newNumbers.clear();
        resultNumbers.clear();
        applyStaticNumbers();
    }


}

Ответы [ 2 ]

5 голосов
/ 22 июня 2019

Вы можете использовать containsAll метод

includingNumbers.containsAll(resultNumbers)
0 голосов
/ 22 июня 2019

Вы можете использовать метод removeall

Коллекция listOne = new ArrayList (Arrays.asList ("x", "y", "z", "a", "b", "c", "d"«));Коллекция listTwo = new ArrayList (Arrays.asList ("a", "b", "d", "e", "f", "x", "y"));

    List<String> sourceList = new ArrayList<String>(listOne);
    List<String> destinationList = new ArrayList<String>(listTwo);


    sourceList.removeAll( listTwo );
    destinationList.removeAll( listOne );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...