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
domap.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)