Java 在HashMap中声明向量的大小

Java 在HashMap中声明向量的大小,java,vector,hashmap,Java,Vector,Hashmap,我有以下代码: public HashMap<GregorianCalendar, Vector<Vector<String>>> recipes; 公共HashMap配方; 外部向量的大小应为3,每个标记处的内部向量的大小可以无限 我该怎么做,甚至可能吗 一些背景: 我需要3号的,因为每种印度菜对应一天中不同的一餐。0是早餐,它将存储早餐的食物列表,1是午餐,2是晚餐。如何完成此设置 使用ArrayList而不是Vector 此外,目标是指接口,而不是具

我有以下代码:

public HashMap<GregorianCalendar, Vector<Vector<String>>> recipes;
公共HashMap配方;
外部
向量
的大小应为3,每个标记处的内部
向量
的大小可以无限

我该怎么做,甚至可能吗

一些背景:


我需要3号的,因为每种印度菜对应一天中不同的一餐。0是早餐,它将存储早餐的食物列表,1是午餐,2是晚餐。如何完成此设置

使用
ArrayList
而不是
Vector

此外,目标是指接口,而不是具体的实现:

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

然后您可以使用
映射来代替它。

此时,您只需定义类(泛型)的内容类型,一旦分配了向量,就可以定义它的大小。 比如说

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);

使用接口与其说是强制性的,不如说是一种设计选择,您可以使用具体类别或接口,例如,如果您计划更改实现,请不要使用
Vector
。程序就像它不存在一样。(您不能为该类型的实例设置固定大小。如果您只需要其中的三个元素,则只能添加三个元素。)我更新了我的帖子,并介绍了一些我想做的事情的背景。与其使用
列表,不如创建一个包含三个字段的类型,每天每顿饭一个字段。谢谢您的帮助。我来做这个,没问题。这样好多了
mealData.getBreakfastItems()
mealData.get(0)更具描述性。非常正确。非常感谢。我是否需要一个构造函数来创建所有列表,或者在创建HashMap时会自动创建列表?否创建
HashMap
时,您有一个空的
HashMap
,并且根本没有列表。。您需要充实类(使字段私有,添加构造函数和getter等)。当您想要添加到
HashMap
do
map.put(???,new MealData(…)
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)