Stavo seguendo conferenze di Algorithms su Coursera di Robert Sedgewick. Ero un po 'confuso quando Mr.Robert ha sottolineato che non è possibile utilizzare Generics con Arrays poiché non è consentito. Ma ArrayList nella Collezione Framework utilizza Array internamente e tipi di dati generici sono allowed.I vuol dire che siamo in grado di fare quanto segue:In che modo ArrayList è rappresentato internamente in Java Collection Framework.?
ArrayList<Integer> list = new ArrayList<Integer>();
Un mod ha sottolineato era questo:
public class FixedCapacityStack<Item>{
private Item[] s;
private int N = 0;
public FixedCapacityStack(int capacity)
{ s = (Item[]) new Object[capacity];} //this hack
Ha anche ho detto che questo è un brutto trucco e deve essere evitato e produce anche avvertimenti durante la compilazione.
mia domanda è:
1.) Come funziona ArrayList quindi rappresentare internamente vari tipi Generics?
2.) Se (si presume) usano l'hack sopra menzionato perché non genera un avviso quando compiliamo un programma con ArrayList?
3.) Esiste un modo migliore a parte il cast precedente?
questo può aiutare: http://docs.oracle.com/javase/tutorial/java/generics/erasure.html – tony200910041
Puoi anche guardare la fonte: http://grepcode.com/file/repository.grepcode .com/java/root/jdk/openjdk/7u40-b43/java/util/ArrayList.java/ – user432
'FixedCapacityStack' non sembra essere presente nel codice sorgente' ArrayList' (collegato nel commento precedente) - era questo un esempio delle lezioni invece? – DNA