はらだたかひこAbstractMapクラスはMapインタフェースを実装するクラスのスーパークラスとなる抽象クラスである。内部で定義されているインナークラスについては省略した。コンストラクタはprotectedとなっており,サブクラスからしか呼び出せない。value)メソッドはこのクラスではUnsupportedOperationExceptionをスローする実装となっており,サブクラスでオーバーライドする必要がある。内部の各要素(キーと値のペア)はjava.util.Map.Entry型のオブジェクトで管理されているようだ。size()メソッドは,entrySet()メソッドで各要素のセットEntrySetを取得し,そのsize()メソッドを呼び出している。isEmpty()メソッドはsize()メソッドの戻り値が0か否かで判定している。そのiterator()メソッドでイテレータを取得した上で,保持している要素を順次取り出して,値が一致するものがないかチェックしている。key)メソッドもほぼ同じ実装であり,こちらはキーを使って検索している。key)メソッドでも同じようにentrySet()メソッドで各要素のセットを取得し,そのイテレータを取得した上で順次要素を取り出し,キーが一致するオブジェクトを取得している。key)メソッドでも同様に順次検索を行って,見つかった要素を削除するというロジックである。m)メソッドでは,引数のmapで与えられたキーと値のペア要素をすべて追加する。value)メソッドで追加している。clear()メソッドでは,entrySet()メソッドで保持している要素のセットを取得して,そのclear()メソッドを実行する。keySet()メソッドでは,メソッド内でAbstractSetを継承した無名インナークラスのインスタンスを作成して,それを返すようになっている。values()メソッドでも,メソッド内でAbstractCollectionを継承した無名インナークラスのインスタンスを作成して,それを返す実装である。entrySet()メソッドは抽象メソッドになっている。使用に同意したとみなされます。