1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| public class ListeAdtArrayListImpl<T extends NombreCopies> implements ListeAdt<T> {
ArrayList<T> list;
ArrayList<T> NbCopies;
/**
* Constructeur sans argument permet
* de créer la nouvelle liste.
*
*/
public ListeAdtArrayListImpl() {
list = new ArrayList<T>();
NbCopies = new ArrayList<T>();
}
@Override
public boolean ajouter(T elt) {
if (elt == null){
System.out.println("Veuillez entrer un element");
return false;
}else if(existe(elt)){
int position = position(elt);
NbCopies.get(position).augmenter(1);
return true;
}else{
list.add(elt);
int position = position (elt);
NbCopies.add(null);
NbCopies.get(position).augmenter(1);
return true;
}
}
public void ajouter(ArrayList<T> liste) {
boolean ajouter = true;
if (liste == null){
}else{
for(int i=0;i<liste.size();i++){
T element = liste.get(i);
for(int j=0;i<list.size();j++){
if (list.get(j).equals(element)){
NbCopies.get(j).augmenter(1);
ajouter = false;
break;
}
}
if (ajouter){
list.add(element);
int position = position (element,list);
NbCopies.get(position).augmenter(1);
}
ajouter = true;
}
}
}
public boolean supprimer(T elt) {
if (existe(elt)){
int position = position(elt);
list.get(position).diminuer(1);
if (list.get(position).obtenirNbCopies()<1){
list.remove(position);
NbCopies.remove(position);
}
return true;
}
return false;
}
public List<T> supprimer(ArrayList<T> liste) {
for(int i=0; i<liste.size(); i++){
if (liste.contains(liste.get(i))){
if (NbCopies.get(i).obtenirNbCopies()<2){
NbCopies.remove(i);
list.remove(i);
}else{
NbCopies.get(i).diminuer(1);
}
}
}
@SuppressWarnings("unchecked")
List<T> retour = (List<T>) list.clone();
return retour;
} |
Partager