Пропуск одного элемента в методе сортировки

У меня возникла проблема, когда я хочу отсортировать свои переменные по меню сборов, я имею в виду, что у меня есть список ArrayList с данными как «С ПЕПЕРОНИ, 1» или «ШАМПАНСКОЕ, 1,2», где, 1 или, 1,2, означает меню переменной, поэтому, когда я нажимаю на Меню 1, я должен видеть только те переменные, которые имеют, 1, или, 1,2, или 1,2,3 (где 1) в их множество.

И на самом деле то, что я сделал, работает, но только с переменными, у которых есть несколько меню, я имею в виду, если переменная находится в меню 1,2,3,4, и я нажимаю 2, которые будут видны, но если переменная находится только в одном меню, как 1 так, 1, в массиве, который не будет визуализирован, и я не могу понять, почему.

вот мой код, в котором я фильтрую переменные и устанавливаю их в новый массив:

 public void FilterVariable() {

        filteredVariable = new ArrayList<>();

        for (VariantiConstructor varianti : variantiConstructors) {
            String data = varianti.getMenu();
            String[] items = data.split("," + positionMenu + ",");

            try {
                if (items[0].equals(data)) {
                  //
                } else {
                    filteredVariable.add(varianti);
                }
            } catch (Exception e) {
                //
            }


        }

    }

А вот экран, на котором я отлаживал и где был, 2, и он пропустил его при добавлении в ArrayList:

Пропуск одного элемента в методе сортировки

чтобы напечатать логарифм исключения, затем перейдите к решению

sasikumar 04.09.2018 11:07

Исключение не дает ошибок

NiceToMytyuk 04.09.2018 11:09

пожалуйста, напечатайте исключение, например, e.prinStackTrace ();

Ravindra Kushwaha 04.09.2018 11:10

e.printStackTrace ();

sasikumar 04.09.2018 11:10

поэтому мне просто нужно добавить e.printStackTrace (); под уловом {? потому что это не дает никакого результата

NiceToMytyuk 04.09.2018 11:14

@JohnKarry Пожалуйста, проверьте решение ниже, я только что рассказал о нем .. Проверьте его и дайте мне знать в случае возникновения проблем

Ravindra Kushwaha 04.09.2018 11:21
2
6
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам необходимо использовать следующий код для замыкания ArrayList

 ArrayList<String> YOUR_ARRAYLIST = new ArrayList<>();

    private void searchDataFromList(String serachString) {


        ArrayList<String> SEARCH_ARRAYLIST = new ArrayList<>();

        for (int i = 0; i < YOUR_ARRAYLIST.size(); i++) {

            if (serachString.contains(YOUR_ARRAYLIST.get(i))) {
                SEARCH_ARRAYLIST.add(YOUR_ARRAYLIST.get(i));
            }

        }
    }

В вашем прослушивателе кликов вам нужно вызвать этот метод searchDataFromList() следующим образом

YOUR_CLICK.setOnClickListener(view -> {

    String searchString  = "WITH PEPERONI,1,";
    String YOUR_SEARCH_STRING  = "";

    List<String> YOUR_SELECETD_LIST = Arrays.asList(searchString.split(","));
    for (int i = 0; i <YOUR_SELECETD_LIST.size(); i++) {
        if (YOUR_SELECETD_LIST.get(i).length()==1)
        {
            YOUR_SEARCH_STRING = YOUR_SELECETD_LIST.get(i);
            System.out.println("VALUE IS ==>>>>> "+YOUR_SEARCH_STRING);
        }
    }

    if (!YOUR_SEARCH_STRING.isEmpty())
    {
        searchDataFromList(YOUR_SEARCH_STRING);
    }

Хорошо, теперь это работает наоборот, теперь добавляются только элементы, у которых есть только одно меню, поэтому, если у переменной есть меню, 1, another, 1,2, another, 1, another, 1,2,3, добавленные переменные - это только одна с , 1,

NiceToMytyuk 04.09.2018 11:31

может мне просто надо в searchString ввести номер меню без запятых?

NiceToMytyuk 04.09.2018 11:32

@JohnKarry .. Это работает для вас .. Дайте мне знать, если возникнут проблемы

Ravindra Kushwaha 04.09.2018 11:45

На самом деле, инвертируя YOUR_ARRAYLIST.get (i) .getMenu.contains (searchString), спасибо.

NiceToMytyuk 04.09.2018 11:45

так что теперь метод "filterVariable = new ArrayList <> (); for (int i = 0; i <variantiConstructors.size (); i ++) {if (variantiConstructors.get (i) .getMenu (). contains (search)" ) {filterVariable.add (variantiConstructors.get (i));}} "и он работает нормально

NiceToMytyuk 04.09.2018 11:46

Другие вопросы по теме