1

Map メソッドのMap x<Apartment,Vector<Expense>>場合に許可されるように初期化する必要があります@override

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

しかし、インターネットで Map はインターフェイスではなく、クラスであると読みました。間違っているのでしょうか、それともこのようにする必要がありますか?

4

3 に答える 3

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

Mapインターフェースです ( javadocにあるように — インターネットではなく、javadoc を参照する必要があります)。実装を選択する必要があります (HashMap が最も頻繁に使用される実装ですが、他の特性を持つ他の実装もあります)。

ベクターのことも忘れてはなりません。もう使うべきではありません。List を型として使用し、ArrayList を実装として使用します (他の List 実装もありますが、ほとんどの場合、ArrayList が必要です)。

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

または単に

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

Java 7 を使用している場合。

于 2012-11-25T13:16:18.740 に答える
3

しかし、Map はインターフェイスではないことをインターネットで読みました

プログラミング言語に関する情報の最適な場所は、常に公式ドキュメントです。Java といえば、最初に次を確認してください: http://docs.oracle.com/javase/7/docs/

マップはインターフェースです。Java ドキュメント API から:

キーを値にマップするオブジェクト。マップに重複キーを含めることはできません。各キーは、最大で 1 つの値にマップできます。このインターフェイスは、インターフェイスではなく完全に抽象クラスであった Dictionary クラスに取って代わります。

HashMapのような実装クラスの 1 つを使用することをお勧めします。Java API ドキュメントから:

Map インターフェースのハッシュテーブルベースの実装。この実装は、すべてのオプションのマップ操作を提供し、null 値と null キーを許可します。(HashMap クラスは Hashtable とほぼ同じですが、同期されず、null を許可する点が異なります。) このクラスは、マップの順序に関して保証しません。特に、順序が長期的に一定であることを保証するものではありません。

Map次のようにforを置き換えるだけで、コードを機能させることができますHashMap

new HashMap<Apartment,Vector<Expense>>

お役に立てば幸いです。乾杯

于 2012-11-25T13:16:34.497 に答える
1

ここで確認してください: http://docs.oracle.com/javase/6/docs/api/java/util/Map.html

HashMap を使用してインスタンス化できます。

于 2012-11-25T13:16:20.840 に答える