Вам нужно структурировать ваши данные таким образом?
Есть несколько вещей, которые следует учитывать:
- Для каждого значения 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" ) );
}
}