Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Java Collection Framework: strutture dati e algoritmi di ordinamento e visita, Schemi e mappe concettuali di Algoritmi E Strutture Di Dati

Il Java Collection Framework (JCF) è un framework Java che offre una gerarchia di interfacce e classi per lo sviluppo di strutture dati con vantaggi come dimensione dinamica e riutilizzo del codice. JCF include algoritmi di ordinamento e visita testati e funzionanti. la struttura di JCF, le interfacce Collection e Map, e le classi ArrayList, Vector, LinkedList, Queue, PriorityQueue, HashSet, LinkedHashSet, TreeSet e HashMap.

Tipologia: Schemi e mappe concettuali

2020/2021

Caricato il 25/10/2022

Lgcm
Lgcm 🇮🇹

5

(1)

5 documenti

1 / 19

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Java Collection Framework
(Argomento Esame ISPO)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Anteprima parziale del testo

Scarica Java Collection Framework: strutture dati e algoritmi di ordinamento e visita e più Schemi e mappe concettuali in PDF di Algoritmi E Strutture Di Dati solo su Docsity!

Java Collection Framework

(Argomento Esame ISPO)

INTRO

  • Nella maggior parte dei software vi è la necessita’ di organizzare e manipolare gruppi di dati o di oggetti nel caso ci troviamo in ambiente Object Oriented.
  • Nello specifico Java oltre agli array ci viene offerto anche un framework dedicato JCF che definisce una gerarchia di interfacce e classi pensato per lo sviluppo di strutture dati con i vantaggi di dimensione dinamica, possibilita’ di ri-uso del codice.
  • Oltre alla struttura JCF rende disponibili anche algoritmi di ordinamento e visita gia’ testati e funzionanti.

Collection

Interfaccia generica che definisce un insieme di dati nei quali non ci sono politiche di ordinamento ne di gestione di duplicati, ma che non ammette dati primitivi se non attraverso Classi wrapper. Viene estesa da List,Queue e Set. Definisce metodi principali… Add,Remove, Contains, Empty, Size e creazione di oggetto Iteratore ..e metodi bulk rispetto altre collezioni…. addAll, removeAll, containsAll… Wrapper: Classi che permettono di fare il boxing e unboxing, automatico dalla versione JDK 1.5, di dati primitivi all’interno di una classe wrapper.

List

Estende le caratteristiche di collection definendo ordinamento in base all’inserimento. Definisce oltre a collection… c.get(i) & c.indexOf(Object) ..Implementata da ArrayList, LinkedList e Vector.

ArrayList, Vector, LinkedList

Simile ad ArrayList con le differenze: -Metodi synchronized e quindi supporta il multi-threading in caso di programmi concorrenti; -Meno efficiente di ArrayList -Permette maggior controllo della capacita’ Metodo capacity();

ArrayList, Vector, LinkedList

LinkedList implementa una lista concatenata con ogni elemento che mantiene un riferimento ad un valore/oggetto e un puntatore al elemento. Quindi si usa quando si ha bisogno una dimensione dinamica a scapito di un tempo di accesso lineare (O(n)). Metodi add(Object) / remove() / clear() contains/ clear() / isEmpty() Iterator()

PriorityQueue

2 soluzioni per CODA con la classe PriorityQueue Queue q1= new PriorityQueue(int size); Implements Comparable: gli oggetti sui della collection sono resi confrontabili (fondamento dell’heap binario) grazie all’implementazione dell’interfaccia Comparable della quale va fatto @Override del metodo .compareTo(). (Ordinamento naturale). @Override 0bj1.compareTo(obj2) -Return «numero <,> o =0» ai metodi di Collections

MAIN

Collections.max(c); Collections.sort(c);

PriorityQueue

Queue q1= new PriorityQueue(int size, new Comparatore()); Implements Comparator: gli oggetti sui quali viene stabilita’ la priorita’ vengono passati come parametri al metodo compare(obj1,obj2) sul quale viene fatto un @Override per definirne un ordinamento specifico. @Override -compare(obj1,obj2) -Return «numero <,> o =0» ai metodi di Collections

MAIN

Collections.max(c,new Comparatore()); Collections.sort (c,new Comparatore());

SortedSet

Interfaccia che estende Set definendone un ordinamento. TreeSet implementa SortedSet TreeSet implementa un ADT di tipo BST. Ogni elemento è appartenente ad una lista che compone l’albero binario a partire dalla radice e che incapsula un oggetto e 2 puntatori, uno al figlio di DX e uno al figlio di SX. L’ordinamento viene sempre effettuato attraverso l’implementazione di una interfaccia che sia Comparable or Comparator.

SortedSet

Interfaccia che estende Set definendone un ordinamento. TreeSet implementa SortedSet TreeSet implementa un ADT di tipo BST. Ogni elemento è appartenente ad una lista che compone l’albero binario a partire dalla radice e che incapsula un oggetto e 2 puntatori, uno al figlio di DX e uno al figlio di SX. L’ordinamento viene sempre effettuato attraverso l’implementazione di una interfaccia che sia Comparable or Comparator.

HashMap & HashSet

HashMap implementa Map con le seguenti particolarita’:

  • Metodi Non synchronized e quindi non_supporta il multi-threading in caso di programmi concorrenti;
  • Non consente valori null; HashSet implementa Map con le seguenti particolarita’:
  • Metodi synchronized e quindi supporta il multi-threading in caso di
  • Consente valori null;

TreeMap

Implementa l’ordinamento attraverso le chiavi che sono organizzate su un BST. Le chiavi sono realizzate su oggetti che appartengono a Classi che implementano le interfacce Comparable o Comparator per permettere un ordinamento (Naturale o Specifico) che avviene sempre grazie ad un Override dei metodi .compareTo o compare() rispettivamente.

INTRO

  • Prima di parlare del Test di software facciamo una premessa sulle fasi antecedenti che gettano la basi per definire la fase di Test stessa.
  • In seguito al fabbisogno di realizzazione dal parte di un committente (Cliente) viene redatto un documento di requisiti che raccoglie tutti i fabbisogni del cliente. Questo raccolta puo’ essere formale o informale.
  • In seguito alla raccolta i requisiti vengono poi analizzati e descritti in termini di specifica che altro non è che una codifica formale di cosa deve essere implementato tecnicamente.
  • Proprio in seguito alle specifiche nell’ottica di sviluppo As Soon As possible è consigliabile avviare il progetto del test che necessariamente non necessita del codice scritto per essere definito.