在HashMap中声明vector的大小

时间:2016-04-13 01:09:12

标签: java vector hashmap

我有以下代码:

public HashMap<GregorianCalendar, Vector<Vector<String>>> recipes;

外部Vector的大小应为3,每个指数的内部Vector可以是无限大小。

我该怎么做,甚至可能吗?

一些背景知识:

我需要大小为3的东西,因为每个indice对应于当天不同的一餐。 0是早餐,将存储早餐食品清单,1是午餐,2是晚餐。我该如何完成此设置。

2 个答案:

答案 0 :(得分:1)

使用ArrayList而不是Vector

此外,旨在引用接口而不是具体实现:

Map<GregorianCalendar, List<List<String>>>

您无法修正VectorArrayList的尺寸。如果外部列表的大小通常为3,则最好使用自定义类。

class MealData {

    List<String> breakfastItems;
    List<String> lunchItems;
    List<String> dinnerItems;
}

然后您可以使用Map<GregorianCalendar, MealData>代替。

答案 1 :(得分:0)

此时您只是定义类的内容类型(泛型),您可以在分配后定义向量的大小。 例如,

public HashMap<GregorianCalendar, Vector<Vector<String>>> recipes;
recipes = new HashMap<GregorianCalendar, Vector<Vector<String>>>();
Vector<Vector<String>> myVector = new Vector<Vector<String>>(5);
Vector<String> innerVector = new Vector<String>(3);

然后你必须分配值:

innerVector.add("test");
myVector.add(innerVector);
recipes.put(myVector)

使用接口更多是设计选择而非强制性,您可以使用具体的条款或接口,例如如果您打算更改实施