Как сделать массив хеш-таблиц в Java? - PullRequest
2 голосов
/ 18 мая 2011

Хотелось бы узнать, возможно ли создать вектор хеш-таблиц?

я пытался

java.util.Hashtable<String, String>[] info = new java.util.Hashtable<String, String>();

но не повезло: (

Спасибо.

Ответы [ 4 ]

4 голосов
/ 18 мая 2011

A Vector - это List, а Hashtable - это Map, поэтому вам нужен список карт.

Я бы посоветовал вам использовать ArrayListвместо Vector и HashMap вместо Hashtable соответственно (, как описано здесь и во многих других вопросах), но больше всего я бы посоветовал вам изменить ваши требования.

В большинстве случаев вам нужна карта списков, а не список карт, и если вы это сделаете, я бы использовал одну из многих доступных пользовательских реализаций, в первую очередь Guava's Multimap.

3 голосов
/ 18 мая 2011

Вы, вероятно, хотите:

ArrayList<Hashtable<String, String>> info =
    new ArrayList<Hashtable<String, String>>();

Это можно несколько упростить с помощью вывода типа и такой библиотеки, как Гуава :

ArrayList<Hashtable<String, String>> info = Lists.newArrayList();
3 голосов
/ 18 мая 2011

Я думаю, что вы хотите

ArrayList<Hashtable<String, String>> info = new ArrayList<Hashtable<String, String>>();
2 голосов
/ 18 мая 2011

Постарайтесь убедиться, что вы используете в качестве абстрактного интерфейс для коллекций, которые вы используете, насколько это возможно.

List<Map<String, String>> info= new ArrayList<Map<String, String>>();

Затем вы можете добавить свои хеш-таблицы

Map<String, String> infoElement= null;
for( something in someOtherThing ) {
    infoElement= new Hashtable<String, String>();
    // add your logic
    info.add(infoElement);
}
...