Originariamente inviato da albymotard
lasciando perdere quello che dicevo prima (cioè la stampa di tutti gli elementi del mio arraylist) ora il problema e far accettare un qualunque elemento al mi metodo add.
Quando faccio :
codice:
public class Eseguibile {
public static void main(String[] args) {
DataStruct struttura = new sArrayList();
struttura.add(5);
}
}
il metodo add mi da errore perchè vuole un metodo add che riceva come argomento un intero.
Nella mia classe sArrayList (ho messo l's iniziale per non mettere il nome uguale alla struttura già esistente) volevo che il mio metodo add(E e) prendesse qualunque cosa in ingresso (quindi int, string , oggetti qualunque).
Non riesco a capire come devo fare
mi sa che non hai letto niente di quello che ho scritto
E' sconsigliato (pena confusione) dare nomi di strutture tipo ArrayList alle tue classi. Ha senso qualora tu estendi l'ArrayList, ma qui della gerarchia di ArrayList non porti dietro niente, cerca di non usare lo stesso nome (e sArrayList crea ancora confusione).
Il nome che dai serve a capire in poco tempo quello che fai e come strutturi il codice, quindi deve essere indicativo della realtà che vuoi implementare
Detto questo, tu ti porti dietro una struttura tipizzata
ArrayList<E>()
questo costruttore indica che stai creando un array di Object di una certa dimensione (la mia jvm dice 10), quindi puoi inserire tutto quello che è Object al suo interno.
int è un Object? NO, Integer è un object.
Assicurati che ci sia il wrap automatico da int a Integer e aggiungi solo oggetti
edit
Codice PHP:
import java.util.ArrayList;
public class MyList<E>{
int sSize;
ArrayList<E> struct;
public MyList(){
struct = new ArrayList<E>();
sSize = struct.size();
}
public MyList(int x){
struct = new ArrayList<E>(x);
sSize = x;
}
public E search(E e){
boolean flag = false;
int point = 0;
for(int i = 0; i<=sSize; i++){
if(e == struct.get(i)){
flag = true;
point = i;
break;
}
}
if(flag == true)
return struct.get(point);
else
return null;
}
public boolean add(E e){
struct.add(e);
return true;
}
public boolean delete(E e){
if(search(e) != null){
struct.remove(e);
return true;
}else
return false;
}
}
import java.util.ArrayList;
public class Prova {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyList myList = new MyList() ;
myList.add(5);
myList.add(new Integer(5));
System.out.println("ciao " );
}
}
questo codice da me funziona (java 1.5)
così come funziona questo
Codice PHP:
public class Prova {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyList myList = new MyList() ;
myList.add(5);
myList.add(new Integer(5));
myList.add("ciao");
System.out.println("ciao " );
}
}
ma questo dà errore in compilazione
Codice PHP:
public static void main(String[] args) {
// TODO Auto-generated method stub
MyList <Integer>myList = new MyList<Integer>() ;
myList.add(5);
myList.add(new Integer(5));
myList.add("ciao"); //<--- aggiungo un valore non ammesso
System.out.println("ciao " );
}