## prog.utili
Class Insieme<E>

    java.lang.Object
      prog.utili.Insieme<E>

All Implemented Interfaces:
  java.lang.Iterable<E>

    public class Insieme<E>

extends java.lang.Object
implements java.lang.Iterable<E>

Le sue istanze rappresentano insiemi di oggetti, cioè collezioni di oggetti che non contengono duplicazioni. Piú precisamente un insieme non contiene coppie di elementi `e1` e `e2` tali che `e1.equals(e2)` è vero.

Version:
  2.0
Author:
  Mauro Ferrari, Giovanni Pighizzini

Constructor Summary
`Insieme()` Costruisce un insieme vuoto.

Method Summary
`boolean` `add(E o)` Aggiunge all'insieme l'oggetto specificato tramite l'argomento, se non già presente.
`boolean` `contains(E o)` Restituisce `true` se e solo se l'insieme contiene un elemento uguale a quello specificato tramite l'argomento.
`boolean` `equals(Insieme<E> altro)` Restituisce `true` se l'insieme che esegue il metodo contiene gli stessi elementi di quello fornito come argomento.
`boolean` `equals(java.lang.Object altro)` Restituisce `true` se l'oggetto fornito come argomento è un insieme e l'insieme che esegue il metodo contiene gli stessi elementi di quello fornito come argomento.
`boolean` `isEmpty()` Restituisce `true` se e solo se l'insieme è vuoto.
`java.util.Iterator<E>` `iterator()` Restituisce un iteratore (un elenco) degli oggetti presenti nell'insieme che esegue il metodo.
`boolean` `remove(E o)` Elimina dall'insieme l'oggetto specificato tramite l'argomento, se presente, e restituisce `true`.
`int` `size()` Restituisce il numero di oggetti presenti nell'insieme.
`java.lang.Object[]` `toArray()` Restituisce un array di oggetti che contiene tutti gli elementi dell'insieme che esegue il metodo.
`java.lang.String` `toString()` Restituisce una stringa che descrive l'insieme.

Methods inherited from class java.lang.Object
`getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Insieme

    public Insieme()

  Costruisce un insieme vuoto.

Method Detail

### add

    public boolean add(E o)

  Aggiunge all'insieme l'oggetto specificato tramite l'argomento, se non già presente. Restituisce `true` se l'elemento è stato aggiunto, `false` altrimenti. Se il riferimento fornito come argomento è `null`, non viene aggiunto all'insieme e il metodo restituisce `false`.

  Parameters:
    `o` - l'oggetto da inserire nell'insieme.
  Returns:
    `true` se e solo se l'insieme non contiene già l'elemento specificato come argomento e `o != null`.

### size

    public int size()

  Restituisce il numero di oggetti presenti nell'insieme.

  Returns:
    il numero di oggetti nell'insieme.

### iterator

    public java.util.Iterator<E> iterator()

  Restituisce un iteratore (un elenco) degli oggetti presenti nell'insieme che esegue il metodo. Gli elementi non compaiono nell'iteratore in un ordine particolare.

  Specified by:
    `iterator` in interface `java.lang.Iterable<E>`
  Returns:
    l'iteratore degli oggetti contenuti nell'insieme.

### isEmpty

    public boolean isEmpty()

  Restituisce `true` se e solo se l'insieme è vuoto.

  Returns:
    `true` se e solo se l'insieme è vuoto.

### contains

    public boolean contains(E o)

  Restituisce `true` se e solo se l'insieme contiene un elemento uguale a quello specificato tramite l'argomento. Piú precisamente restituisce `true` se e solo se l'insieme contiene un elemento `e` tale `o.equals(e))` risulta vera.

  Returns:
    `true` se l'insieme contiene l'oggetto specificato come argomento, `false` altrimenti.

### remove

    public boolean remove(E o)

  Elimina dall'insieme l'oggetto specificato tramite l'argomento, se presente, e restituisce `true`. Nel caso l'oggetto non sia presente, lascia l'insieme immutato e restituisce `false`. Piú precisamente, rimuove dall'insieme l'elemento `e`, se esiste, tale che `o.equals(e)`.

  Parameters:
    `o` - l'elemento da eliminare dall'insieme.
  Returns:
    `true` se l'insieme conteneva l'oggetto specificato come argomento e tale elemento è stato eliminato, `false` altrimenti.

### toArray

    public java.lang.Object[] toArray()

  Restituisce un array di oggetti che contiene tutti gli elementi dell'insieme che esegue il metodo. Nell'array gli oggetti non compaiono in un ordine particolare.

  Returns:
    l'array contente tutti gli oggetti presenti nell'insieme che esegue il metodo.

### toString

    public java.lang.String toString()

  Restituisce una stringa che descrive l'insieme.

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    la stringa che descrive l'insieme.

### equals

    public boolean equals(java.lang.Object altro)

  Restituisce `true` se l'oggetto fornito come argomento è un insieme e l'insieme che esegue il metodo contiene gli stessi elementi di quello fornito come argomento.

  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `altro` - l'oggetto da confrontare con l'insieme che esegue il metodo.
  Returns:
    `true` se l'insieme che esegue il metodo è uguale a quello specificato come argomento e `false` altrimenti.

### equals

    public boolean equals(Insieme<E> altro)

  Restituisce `true` se l'insieme che esegue il metodo contiene gli stessi elementi di quello fornito come argomento.

  Parameters:
    `altro` - l'insieme da confrontare con l'insieme che esegue il metodo.
  Returns:
    `true` se l'insieme che esegue il metodo è uguale a quello specificato come argomento e `false` altrimenti.