2015-08-07 2 views
0

Возможно ли создать на Java код Hashtable, где ключ является целым числом, а значения представляют собой массив целых чисел. Я попытался под кодом, и он не работает. Кто-нибудь знает, как создать такую ​​структуру данных?Как установить значение Hashtable как массив?

int[] a = {0, 0, 0}; 
// does not work!!!! 
Hashtable<int, int[]> entry = new Hashtable<NodeT, a>; 

ответ

3

Несколько вещей:

1) Пожалуйста, не использовать Hashtable, вместо этого использовать HashMap. Hashtable - это старая синхронизированная версия, и люди больше ее не используют.

Обратитесь к this Отличный ответ, когда следует использовать Hashtable.

2) Просьба указать код по интерфейсу, если у вас нет веских оснований для этого (поэтому ваш entry должен быть типа Map). Это позволяет легко изменить базовую реализацию на другой вид карты.

3) Пожалуйста, прочтите official Java tutorial он объясняет, как использовать интерфейс карты и в основном это должно быть больше или меньше, как это:

Map<Integer, int[]> entry = new HashMap<>();

Или, если вы используете Java старше 7 Map<Integer, int[]> entry = new HashMap<Integer, int[]>(); так the diamond operator был введен в Java7. Также обратите внимание, что с обеих сторон вам нужны те же значения внутри <>. Зачем вам писать <NodeT, a> с правой стороны? Я думаю, a попытался инициализировать его a, но я не понимаю NodeT.

Вы должны использовать Integer вместо int, поскольку генераторы в Java не принимают примитивные типы. int[] отлично работает, поскольку это объект Java.

После этого вам необходимо поместить свои данные на карту.

2
  1. Не используйте Hashtable. Используйте HashMap. HashMap более производительный и Hashtable был в основном устаревшим с Java 2.
  2. Вы не можете использовать int в качестве ключа, он должен быть Object, который в данном случае является autoboxedInteger, так что используйте:

    Map<Integer, int[]> = new HashMap<>(); 
    
Смежные вопросы