2013-03-16 2 views
1

Здравствуйте, я хотел бы реализовать карту хэша, которая отображает определенную дату в массив из int. размер массива 32реализовать хэш-карту, которая принимает k = объект Date v = массив

Я попробовал это, и он компилирует:

HashMap<Date,int[]> coord_map = new HashMap<Date, int[]>();

, но я не знаю, как это работает, так как я не давал размера для массива целых чисел.

также я устал это:

int[] arr = new int[32]; 
for(int i =0; i <32; i++){ 
arr[i] = 0; // initialize the array to 0. 
} 
HashMap<Date, arr> attraction_date = new HashMap<Date, arr>(); 

это дает мне ошибку компилятора «не удается найти класс или тип с именем обр»

спасибо

теперь у меня есть последующий вопрос :

Я успешно использую одну карту хэша, которая принимает дату и сопоставляет ее с n int array. Теперь я хочу использовать несколько экземпляров этой хэш-карты. поскольку мой проект касается данных тематического парка, для каждого притяжения будет один хэш-файл.
, так как бы я мог реализовать список массивов хеш-карт. Следить за 20 аттракционами? Если кто-нибудь может показать мне образец кода установки, который инициализирует все, это было бы полезно.

Еще раз спасибо,

ответ

3

Что у вас на вершине хорошее, вам не нужно указывать размер. Это будет работать

Map<Date, int[]> coordMap = new HashMap<Date, int[]>(); 
coordMap.put(aDate, new int[]{1,2}); 
coordMap.put(anotherDate, new int[]{3,4,5,6}); 
... 

Таким образом, каждое значение int[] может иметь различный размер.

4

Это зависит от того, что вы делаете. Если проблема требует, чтобы у вас был массив из ровно 32 ints, тогда создайте класс оболочки IntArray32 и используйте HashMap<Date, IntArray32>. В противном случае то, что вы написали, будет работать, оно просто позволит вам иметь массив int любого размера в качестве значения.

Смежные вопросы