J2ME Вектор запроса Hashtable - PullRequest
1 голос
/ 24 мая 2010

Я новичок в J2ME.У меня есть вектор с названием location, который выводит

[{X=NM0001-1, ccc=1327_10}, 
{X=NM0001-2, ccc=1329_10}, 
{X=NM0001-3, ccc=691_10}] 

, когда я помещаю System.out.println (location);Я установил «X», а «ccc» - ключи.В моей программе я хотел запросить определенное значение "ccc", что является значением "X".Любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 24 мая 2010

Вам нужно структурировать ваши данные таким образом?

Есть несколько вещей, которые следует учитывать:

  • Для каждого значения ccc есть только одно связанное значение X?
  • Важен ли здесь порядок элементов в векторе?
  • Является ли содержимое структуры данных статическим, т.е. вы добавляете данные в структуру во время выполнения программы или это происходит при однократной записи при запуске?
  • Вы удаляете данные из структуры.

Если связанные значения уникальны, вы можете хранить данные в единственной Hashtable с значениями ccc в качестве ключей, тогда получение значения для определенного ключа является тривиальным. Если порядок ключей важен, вы можете сохранить отдельный Вектор ключей.

В противном случае вам придется перебирать вектор, извлекать значение из каждой Hashtable для ключа ccc, если оно соответствует вашему поисковому значению, получить значение для ключа X в качестве вашего результата. Примерно так:

for ( int i = 0; i < locations.size( ); i++ ) {
    Hashtable ht = (Hashtable) locations.elementAt( i );
    if ( key.equals( ht.get( "ccc" ) ) ) {
        System.out.println( "Value for key " + key + "=" + ht.get( "X" ) );
    }
}
...