Список Java Array содержит и устанавливает значение - PullRequest
0 голосов
/ 29 февраля 2012

Я добавляю A, B и C в список массивов. Как я могу проверить, содержит ли список массивов A, B и C, чем установить переменную id как 1. Или есть ли лучший способ сделать это. Я просто хочу установить переменную id как 1,2 или 3 в зависимости от значения в списке Array. Например, если список массивов содержит A, B и C, чем id = 1, и если список массивов содержит A, B, C и D, чем id = 2;

Ответы [ 4 ]

2 голосов
/ 29 февраля 2012

Вы бы использовали метод содержит , который отображается в интерфейсе списка. Логика, в которой вы должны определить, для чего нужно установить идентификатор, будет соответствовать вашим правилам. Мое предположение в этом надуманном примере будет, если A && B && C id = 1

Не забудьте переопределить equals и hashcode, иначе нет гарантии, что list.contains вернет правильный результат.

2 голосов
/ 29 февраля 2012

Вы можете использовать ArrayList.contains (Object elem) метод для этой цели. Возвращает

true, если указанный элемент присутствует; иначе false.

Небольшой фрагмент кода, чтобы дать вам некоторое представление.

int id = 0;
ArrayList<String> arraylist  = new ArrayList<String>();
arraylist.add("A");
arraylist.add("B");
arraylist.add("C");
if(arraylist.contains("A") && arraylist.contains("B"))
     id=1;
System.out.println(id)

Итак, Выход = 1.

1 голос
/ 29 февраля 2012

Помимо примечаний о equals / hash, я бы добавил упрощение использования List.containsAll():

int id = 0;
List forId1 = Arrays.asList("A", "B", "C");
List forId2 = Arrays.asList("A", "B", "C", "D");
if (mylist.containsAll(forId2) {
     id=2;
} else if (mylist.containsAll(forId1) {
     id=1;
}
0 голосов
/ 29 февраля 2012

Если вы помещаете пользовательские объекты в массив, вам нужно реализовать метод equals и hashCode, вы можете использовать метод contains класса ArrayList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...