Как получить другие записи операторов с помощью HashTable?

Добрый вечер, я пытаюсь использовать HashTable() для временного хранения записей таблицы базы данных. Проблема в том, что я не знаю, почему записи, помещаемые в HashTable(), всегда будут первой записью. Я думаю, что проблема возникает из-за неправильной концепции циклов, связанного кода:

Объявить

Hashtable hashsample = new Hashtable();

для цикла

for (i = 0; i< db.getNumberOfRows(); i++) {

        hashsample.put(i, db.getData());
        System.out.println(hashsample);
    }

p/s: я новичок в HashTable, db (оператор базы данных) работает нормально...

Нужны подсказки и советы, заранее спасибо ^^


person 薛源少    schedule 11.07.2013    source источник
comment
Начните с Map в первую очередь. Как вы перебираете набор результатов БД?   -  person AllTooSir    schedule 11.07.2013
comment
Я не вижу проблемы в вашем коде. Возможно, способ проверки неверен. Попробуйте напечатать элемент, а не хэш-таблицу, т.е. System.out.println(hashsample.get(i));   -  person Juned Ahsan    schedule 11.07.2013
comment
спасибо... я решаю это, и это из-за моей глупой ошибки... следует изменить hashsample.put(i, db.getData()) на (key, db.getDataAtRow(i))   -  person 薛源少    schedule 11.07.2013


Ответы (1)


Я попробовал ваш код, издевающийся над БД:

public static void main(String[] args) {

    HashMap db = new HashMap();
    db.put(0, "zero");
    db.put(1, "one");
    db.put(2, "two");
    db.put(3, "three");

    Hashtable hashsample = new Hashtable();

    for (int i = 0; i < db.size(); i++) {

            hashsample.put(i, db.get(i));
            System.out.println(hashsample);
    }

}

и это работает просто отлично. Здесь вывод:

{0=zero}
{1=one, 0=zero}
{2=two, 1=one, 0=zero}
{3=three, 2=two, 1=one, 0=zero}

Я думаю, проблема в том, что ваш db.getData() всегда возвращает одно и то же.

person Paolof76    schedule 11.07.2013
comment
да, мне все еще нужно сделать больше домашней работы, чтобы освоить HashTable()... TQ от всего сердца ^^ - person 薛源少; 11.07.2013