Добавить элемент в arraylist, если он еще не существует в списке

Привет, у меня есть listview, показывающий arraylist, когда элемент щелкнут, он добавляется в другой arraylist и отображается в другом действии. В чем моя проблема? Я хочу, чтобы, если элемент (например, собака), который я касаюсь один раз, добавляется ко второму действию, и он показывает. Но если я должен был коснуться предмета (собаки), он не будет добавлен снова.

Мы бы сказали, что я хочу проверить, существует ли она, а не добавлять.

Я пробовал так, но безуспешно.

if (page2 == null) { page2 = (ListView) LayoutInflater.from(Local_mostrar_bebidaActivity.this).inflate(R.layout.page_two_viewpager_listview, null); page2.setAdapter(adapterlistvMenuVINOSespumosos); page2.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (MiPedidoActivity.itemsListVMiPedido.contains( position)){} else MiPedidoActivity.itemsListVMiPedido.add(itemsListVMenuVINOSespumosos.get(position)); }}); } page = page2; break; 

Есть идеи?

Solutions Collecting From Web of "Добавить элемент в arraylist, если он еще не существует в списке"

У тебя есть:

 if (MiPedidoActivity.itemsListVMiPedido.contains( position)){} else MiPedidoActivity.itemsListVMiPedido.add(itemsListVMenuVINOSespumosos.get(position)); 

Вы проверяете, содержит ли itemsListVMiPedido целое число, position , но вы добавляете в itemsListVMenuVINOSespumosos.get(position) . Вам нужно проверить, содержит ли этот список элемент , а не индекс (подумайте о нем точно так же, как и о том, что вы пытаетесь сделать: «не добавляйте элемент в список, если в списке уже содержится элемент ). Вероятно, вы имеете в виду что-то вроде этого (я просто Например, Item , используйте любой класс, к которому относятся ваши объекты):

 Item item = itemsListVMenuVINOSespumosos.get(position); if (MiPedidoActivity.itemsListVMiPedido.contains(item)) { // <- look for item! // ... item already in list } else { MiPedidoActivity.itemsListVMiPedido.add(item); } 

Кстати, в качестве предложения, если у ваших классов предметов есть правильные значения equals() и hashCode() , рассмотрите LinkedHashSet (который сохранит порядок вставки, но не позволит дублировать). Существуют и другие реализации Set которые также могут быть полезны (например, TreeSet если ваши элементы реализуют Comparable ), в зависимости от ваших требований упорядочения / сортировки.