Как выполнить поиск в arraylist, чтобы найти повторяющиеся значения, игнорируя некоторые строки

#java #search #arraylist

#java #Поиск #arraylist

Вопрос:

Я добавляю в свой список массивов тип данных и имя функции, например. введите «func», но каждый раз, когда я хочу добавить его в список, я также хочу проверить, существует ли эта «функция», игнорируя «int», потому что многие функции могут иметь один и тот же тип данных, но не могут иметь одно и то же имя. Как бы я решил это, используя Arraylist java

Идентификаторами будут, например, «func» d.func — это мой массив имен функций

         String IDs = tokM1(E).getToken();
        String IDs2 = tokM2(E).getToken();
        d.func.add(IDs);
        d.func.add(IDs2);
        for (int i=0; i> d.func.size();){
            //search array to find duplicates of IDs ignoring IDs2(ex. int), if duplicates found then reject (reject method written)
        //reject();
        }
  

Ожидал бы, что он отклонит, если будут найдены повторяющиеся значения для найденных идентификаторов, но игнорируется тип данных (IDs2)

Ответ №1:

Если я правильно интерпретирую, вы добавляете имя функции сначала в свой ArrayList, а затем тип данных в тот же ArrayList. Если это так, вы могли бы проверить ArrayList на наличие идентификаторов, прежде чем добавлять их в ArrayList. Вы могли бы создать цикл for для обхода каждого второго элемента, начинающегося с индекса 0:

     String IDs = tokM1(E).getToken();
    String IDs2 = tokM2(E).getToken();
    boolean isDuplicate = false;
    for (int i = 0; i < d.func.size(); i = i 2) {
      if(d.func.get(i).contentEquals(IDs)) {
         isDuplicate = true;
         break;
      }
    }
    if (!isDuplicate) {
      d.func.add(IDs);
      d.func.add(IDs2);
    }