## prog.utili
Class Sequenza<E>

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

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

Direct Known Subclasses:
  SequenzaOrdinata

    public class Sequenza<E>

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

Le sue istanze rappresentano sequenze di oggetti di tipo `E`, cioè collezioni di oggetti di tipo `E` che possono contenere duplicazioni. Nelle sequenze gli oggetti compaiono nell'ordine in cui sono stati inseriti.

Version:
  2.0
Author:
  Mauro Ferrari, Giovanni Pighizzini

Constructor Summary
`Sequenza()` Costruisce una sequenza vuota.

Method Summary
`boolean` `add(E o)` Aggiunge alla fine della sequenza l'oggetto fornito tramite l'argomento e restituisce `true`; nel caso come argomento venga fornito `null`, non modifica la sequenza e restituisce `false`.
`boolean` `contains(E o)` Restituisce `true` se e solo se la sequenza contiene un oggetto uguale (sulla base del criterio di uguaglianza fornito dal metodo `equals` definito per gli oggetti di tipo `E`) a quello specificato tramite l'argomento.
`boolean` `equals(java.lang.Object altro)` Per verificare se la sequenza che esegue il metodo è uguale all'oggetto specificato come argomento.
`E` `find(E o)` Restituisce il riferimento al primo oggetto nella sequenza uguale (sulla base del criterio di uguaglianza fornito dal metodo `equals` definito per gli oggetti di tipo `E`) a quello specificato tramite l'argomento, o `null` se tale oggetto non è presente.
`boolean` `isEmpty()` Restituisce `true` se e solo se la sequenza che esegue il metodo è vuota.
`java.util.Iterator<E>` `iterator()` Restituisce un iteratore (un elenco) degli oggetti presenti nella sequenza che esegue il metodo.
`void` `mescola()` Permuta in modo casuale gli elementi nella sequenza.
`boolean` `remove(E o)` Elimina dalla sequenza il primo oggetto uguale (sulla base del criterio di uguaglianza fornito dal metodo `equals` definito per gli oggetti di tipo `E`) a quello specificato tramite l'argomento e restituisce `true`.
`int` `size()` Restituisce il numero di oggetti presenti nella sequenza che esegue il metodo.
`java.lang.Object[]` `toArray()` Restituisce un array di oggetti che contiene tutti gli elementi della sequenza che esegue il metodo nell'ordine in cui compaiono nella sequenza.
`java.lang.String` `toString()` Restituisce una stringa che descrive la sequenza.

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

Constructor Detail

### Sequenza

    public Sequenza()

  Costruisce una sequenza vuota.

Method Detail

### add

    public boolean add(E o)

  Aggiunge alla fine della sequenza l'oggetto fornito tramite l'argomento e restituisce `true`; nel caso come argomento venga fornito `null`, non modifica la sequenza e restituisce `false`.

  Parameters:
    `o` - l'oggetto da aggiungere alla sequenza.
  Returns:
    `true` se il riferimento specificato come argomento è diverso da `null`,`false` altrimenti.

### size

    public int size()

  Restituisce il numero di oggetti presenti nella sequenza che esegue il metodo.

  Returns:
    il numero di oggetti nella sequenza.

### iterator

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

  Restituisce un iteratore (un elenco) degli oggetti presenti nella sequenza che esegue il metodo. Gli elementi compaiono nell'iteratore esattamente nello stesso ordine in cui compaiono nella sequenza.

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

### isEmpty

    public boolean isEmpty()

  Restituisce `true` se e solo se la sequenza che esegue il metodo è vuota.

  Returns:
    `true` se e solo se la sequenza che esegue il metodo è vuota.

### contains

    public boolean contains(E o)

  Restituisce `true` se e solo se la sequenza contiene un oggetto uguale (sulla base del criterio di uguaglianza fornito dal metodo `equals` definito per gli oggetti di tipo `E`) a quello specificato tramite l'argomento.

  Parameters:
    `o` - l'oggetto da cercare.
  Returns:
    `true` se e solo se la sequenza contiene un oggetto uguale a quello specificato come argomento.

### find

    public E find(E o)

  Restituisce il riferimento al primo oggetto nella sequenza uguale (sulla base del criterio di uguaglianza fornito dal metodo `equals` definito per gli oggetti di tipo `E`) a quello specificato tramite l'argomento, o `null` se tale oggetto non è presente.

  Parameters:
    `o` - l'oggetto da cercare.
  Returns:
    il riferimento al primo oggetto uguale a `o` presente nella seqeunza, se la sequenza contiene un tale oggetto, `null` altrimenti.

### remove

    public boolean remove(E o)

  Elimina dalla sequenza il primo oggetto uguale (sulla base del criterio di uguaglianza fornito dal metodo `equals` definito per gli oggetti di tipo `E`) a quello specificato tramite l'argomento e restituisce `true`. Nel caso tale oggetto non vi sia, lascia la sequenza immutata e restituisce <cod>false.

  Returns:
    `true` se la sequenza conteneva un elemento uguale a quello specificato come argomento, `false` altrimenti.

### toArray

    public java.lang.Object[] toArray()

  Restituisce un array di oggetti che contiene tutti gli elementi della sequenza che esegue il metodo nell'ordine in cui compaiono nella sequenza.

  Returns:
    l'array contenente tutti gli oggetti presenti nella sequenza che esegue il metodo.

### toString

    public java.lang.String toString()

  Restituisce una stringa che descrive la sequenza.

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    la stringa che descrive la sequenza.

### equals

    public boolean equals(java.lang.Object altro)

  Per verificare se la sequenza che esegue il metodo è uguale all'oggetto specificato come argomento. Restituisce `true` se e solo se l'oggetto fornito come argomento è una sequenza, la sequenza che esegue il metodo ha la stessa lunghezza di quella specificata come argomento e gli elementi delle due sequenze che si trovano nella stessa posizione sono uguali (secondo il metodo `equals`).

  Overrides:
    `equals` in class `java.lang.Object`
  Returns:
    `true` se e solo se l'oggetto specificato come argomento è una sequenza ed è uguale a quella che esegue il metodo.

### mescola

    public void mescola()

  Permuta in modo casuale gli elementi nella sequenza.