2012-11-25 35 views
1

我需要初始化一个像Map x<Apartment,Vector<Expense>>它可以让我,如果我@override地图方法初始化一个Map <富,矢量<Bar>> - Java 7的

Description Resource Path Location Type 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.isEmpty() Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.size() Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.keySet() Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.remove(Object) Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.entrySet() Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.putAll(Map<? extends Apartment,? extends Vector<Expense>>) Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.values() Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.clear() Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.get(Object) Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.containsKey(Object) Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.containsValue(Object) Repository.java /proj_individual/src/repo line 12 Java Problem 
The type new Map<Apartment,Vector<Expense>>(){} must implement the inherited abstract method Map<Apartment,Vector<Expense>>.put(Apartment, Vector<Expense>) Repository.java /proj_individual/src/repo line 12 Java Problem 

但我在互联网上阅读地图不是接口,它是一个类,我做错了,或者这是必须完成的方式?

+0

嗯..什么? '地图是一类' - 你在互联网上读到这个? –

+0

地图是一个接口。 (http://docs.oracle.com/javase/6/docs/api/java/util/Map.html) –

+1

怎么样'地图<公寓,矢量> myMap = new HashMap <公寓,矢量>( )'?并看看JB Nizets的答案。你可以找到你需要的所有信息。 – semTex

回答

7
Map<Apartment, Vector<Expense>> map = new HashMap<Apartment, Vector<Expense>>(); 

Map是一个接口(如the javadoc说— javadoc的应该是你的参考,而不是互联网)。你需要选择一个实现(HashMap是最常用的实现,但还有其他实现,以及其他特性)。

你也应该忘记Vector。它不应该被使用了。使用List作为一个类型,和ArrayList作为实现(也有其他的List实现,但ArrayList中几乎总是你想要的):

Map<Apartment, List<Expense>> map = new HashMap<Apartment, List<Expense>>(); 

或者干脆

Map<Apartment, List<Expense>> map = new HashMap<>(); 

,如果你是下Java 7中

+0

Java 7,不妨使用'<>'运算符 – darrengorman

+0

我在我的答案中加入了这个。谢谢。 –

+0

Ty,对不起,如果answeres是傻瓜,但只是习惯了java,有时我不知道我在哪里可以找到我需要的东西 –

3

不过,我看到在互联网上说地图是不是一个接口

约一门编程语言永远是官方文档信息的最佳场所。说到java,只要确保先看看:http://docs.oracle.com/javase/7/docs/

Map是一个接口。从Java文档API:

将键映射到值的对象。地图不能包含重复的键;每个键可以映射到最多一个值。 这个接口取代了Dictionary类,它是一个完全抽象的类而不是接口。

我建议您使用其中一个实施类,如HashMap。从Java API文档:

基于哈希表的Map实现的接口。该实现提供了所有可选的映射操作,并允许使用空值和空键。 (HashMap类大致等同于Hashtable,除了它是不同步的并且允许为空值。)这个类不能保证地图的顺序;特别是,它不能保证订单会随着时间的推移保持不变。

您的代码可以通过简单地更换MapHashMap在被然后是功能:

new HashMap<Apartment,Vector<Expense>> 

我希望它帮助。干杯

相关问题