我有以下代码:
public HashMap<GregorianCalendar, Vector<Vector<String>>> recipes;
外部Vector
的大小应为3,每个指数的内部Vector
可以是无限大小。
我该怎么做,甚至可能吗?
一些背景知识:
我需要大小为3的东西,因为每个indice对应于当天不同的一餐。 0是早餐,将存储早餐食品清单,1是午餐,2是晚餐。我该如何完成此设置。
答案 0 :(得分:1)
使用ArrayList
而不是Vector
。
此外,旨在引用接口而不是具体实现:
Map<GregorianCalendar, List<List<String>>>
您无法修正Vector
或ArrayList
的尺寸。如果外部列表的大小通常为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)
使用接口更多是设计选择而非强制性,您可以使用具体的条款或接口,例如如果您打算更改实施