This shows you the differences between two versions of the page.
poo:laboratoare:08 [2021/11/24 14:37] mihai.nan [ATENTIE! Se vor folosi tipuri generice in toate problemele!] |
poo:laboratoare:08 [2022/11/24 13:08] (current) carmen.odubasteanu [ATENTIE! Se vor folosi tipuri generice in toate problemele!] |
||
---|---|---|---|
Line 9: | Line 9: | ||
<code java> | <code java> | ||
+ | public class ArrayMapEntry<K, V> implements Map.Entry<K, V> { | ||
+ | private K key; | ||
+ | private V value; | ||
+ | ...// constructor | ||
public K getKey(); | public K getKey(); | ||
public V getValue(); | public V getValue(); | ||
Line 15: | Line 19: | ||
public boolean equals(Object o); | public boolean equals(Object o); | ||
public int hashCode(); | public int hashCode(); | ||
+ | } | ||
</code> | </code> | ||
Line 20: | Line 25: | ||
<code java> | <code java> | ||
+ | public class ArrayMap<K, V> extends AbstractMap<K, V>{ | ||
+ | ... | ||
public Set entrySet(); | public Set entrySet(); | ||
public int size(); | public int size(); | ||
public V put(K key, V value); | public V put(K key, V value); | ||
+ | .... | ||
+ | } | ||
</code> | </code> | ||
Line 54: | Line 63: | ||
=== Problema 3 === | === Problema 3 === | ||
- | Definiți clasa **__generică__** **//LinkedList//** care va implementa interfața **//Iterable//** și va modela o listă liniară simplu înlănțuită. | + | Definiți clasa **__generică__** **//LinkedList//** care va implementa interfața **//Iterable//** și va modela o listă liniară simplu înlănțuită: |
+ | class LinkedList<T> implements Iterable<T> | ||
În clasa **//LinkedList//** se vor defini: | În clasa **//LinkedList//** se vor defini: | ||
- | * o clasă **//generica//** internă privată statică **//Node//** care conține două referințe: una pentru valoarea pe care o reține nodul și una pentru nodul următor din listă; și doi constructori: unul cu doi parametri (valoarea și nodul următor) și unul cu un parametru (valoarea) - va atribui valoarea null nodului următor; | + | * o clasă **//generica//** internă privată statică **//Node//** |
+ | <code> private static class Node<T> </code> | ||
+ | care conține două referințe: una pentru valoarea pe care o reține nodul și una pentru nodul următor din listă; și doi constructori: unul cu doi parametri (valoarea și nodul următor) și unul cu un parametru (valoarea) - va atribui valoarea null nodului următor; | ||
* două elemente de tip **//Node//**, reprezentând primul și respectiv ultimul element din listă; | * două elemente de tip **//Node//**, reprezentând primul și respectiv ultimul element din listă; | ||
* o clasă internă **//ListIterator//** ce va implementa interfața generica **//Iterator//**; | * o clasă internă **//ListIterator//** ce va implementa interfața generica **//Iterator//**; |