В настоящее время у меня проблема с методом get (), используемым с хеш-таблицами.
Мой код инициализации:
Hashtable<Integer, pageEntry> pageTable = new Hashtable<Integer, pageEntry>();
Hashtable<Integer, LinkedList<Integer>> lookAhead = new Hashtable<Integer, LinkedList<Integer>();
//Initialize pageTable and co.
for(int i = 0; i < 10; i++) {
pageEntry p = new pageEntry();
pageTable.put(i, p);
lookAhead.put(i, new LinkedList<Integer>());
}
, когда я использую System.out.println(lookAhead);
, вывод следует:
{0=[]}
{1=[], 0=[]}
{2=[], 1=[], 0=[]}
{3=[], 2=[], 1=[], 0=[]}
{4=[], 3=[], 2=[], 1=[], 0=[]}
Если я использую System.out.println(lookAhead.get(0))
, вывод будет следующим:
[]
[]
[]
[]
[]
Однако, если я использую System.out.println(lookAhead.get(3))
, выход изменится на
null
null
null
[]
[]
Есть ли какая-то причина, по которой я упускаю из виду, почему она меняет мои значения на ноль?
Спасибо за ваше время.