上節(jié)我們提到,如果需要一個Map的實現(xiàn)類,并且鍵的類型為枚舉類型,可以使用HashMap,但應(yīng)該使用一個專門的實現(xiàn)類EnumMap。

為什么要有一個專門的類呢?我們之前介紹過枚舉的本質(zhì),主要是因為枚舉類型有兩個特征,一是它可能的值是有限的且預(yù)先定義的,二是枚舉值都有一個順序,這兩個特征使得可以更為高效的實現(xiàn)Map接口。

我們先來看EnumMap的用法,然后看它到底是怎么實現(xiàn)的。

用法

舉個簡單的例子,比如,有一批關(guān)于衣服的記錄,我們希望按尺寸統(tǒng)計衣服的數(shù)量。

定義一個簡單的枚舉類,Size,表示衣服的尺寸:

public enum Size {
    SMALL, MEDIUM, LARGE
}

定義一個簡單類,Clothes,表示衣服: