3.6.1. Implementace seznamem s lineárním vyhledáváním

Nejjednodušší implementace množiny vychází z libovolného seznamu, do kterého budeme ukládat všechny její prvky. Při ukládání musíme pouze zajistit, aby každý prvek byl v seznamu nejvýše jednou. Vzhledem k tomu, že nemusíme garantovat žádné konkrétní pořadí prvků, můžeme nové prvky vkládat tam, kde bude vložení nejjednodušší - např. na konec nebo začátek seznamu.

Příklad 3.10.
Implementujte rozhraní Set s využitím seznamu.

Prvky množiny budeme udržovat v seznamu. Na tento seznam budou delegovány všechny operace, pouze v operaci vkládání zajistíme navíc to, aby se do seznamu neuložil jeden prvek víckrát.

class ArraySet implements Set 
{ 
   public ArraySet(int capacity) 
   { 
      list = new ArrayList(capacity); 
   } 
    
   public void add(Object elem) 
   { 
      if( list.contains(elem) ) return; 
      list.add(elem); 
   } 
    
   public boolean remove(Object elem) 
   { 
      return list.remove(elem); 
   } 
    
   public boolean contains(Object elem) 
   { 
      return list.contains(elem); 
   } 
    
   public int size() 
   { 
      return list.size(); 
   } 
   
   public Iterator iterator()  
   { 
      return list.iterator(); 
   } 
    
   protected ArrayList list; 
}