This repository was archived by the owner on Jul 23, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
This repository was archived by the owner on Jul 23, 2024. It is now read-only.
Ej8 - TP6 #12
Copy link
Copy link
Open
Description
Buenas nochess,
Escribo porque quisiera saber si la solución que propongo es adecuada ya que difiere un poco de la que se presenta en el solucionario.
Adjunto el código de la clase que implementa la interfaz Bag:
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.HashMap;
public class BagImpl<E> implements Bag<E>{
private Map<E,Integer> elements;
private int elemsCount; // apariciones de todos los elementos
public BagImpl(){
elemsCount = 0;
elements = new HashMap<>();
}
@Override
public void add(E element) {
Integer toReplace;
if ((toReplace = elements.putIfAbsent(element, 0)) == null) {
toReplace = 0;
}
elements.replace(element, toReplace, toReplace+1);
elemsCount += 1;
}
@Override
public void remove(E element) {
Integer toReduce;
if( (toReduce = elements.get(element)) != null ){
if ( toReduce == 1) {
elements.remove(element);
} else {
elements.replace(element, toReduce, toReduce-1);
}
elemsCount -= 1;
}
else{
throw new NoSuchElementException();
}
}
@Override
public int count(E element) {
if( elements.isEmpty() || !elements.containsKey(element) ){
return 0;
}
return elements.get(element);
}
@Override
public int size() {
return elemsCount;
}
@Override
public int sizeDistinct() {
return elements.size();
}
@Override
public boolean contains(Object element) {
return elements.containsKey(element);
}
}Desde ya muchas gracias
Metadata
Metadata
Assignees
Labels
No labels