簡體   English   中英

為什么我們需要為Java枚舉設置和映射

[英]Why do we need Set and Map for Java Enum

我是Enum的新手。 在學習Enum時,我遇到了EnumSet和EnumMap。 我了解到,使用EnumSet和EnumMap處理地圖和設置比此問題中的哈希對應要好得多。

為什么EnumSet或EnumMap的性能可能比散列的EnumSet或EnumMap更好?

我的問題是

在什么情況下,我們需要使用Java的Map and Set for Enum?

我對了解實際情況更感興趣。

考慮一個場景,其中您要為每個形狀對象定義飛重,例如:

public enum SHAPE {
    TRIANGLE, RECTANGLE, SQUARE, HEXAGON;
}

並假設每次為所有這些形狀創建對象都是巨大的。 說它進入數據庫,並在構造函數中獲取一些數據。 你做什么?

使用枚舉鍵和值作為一個時間對象將其保存在地圖中,然后使用枚舉,您說嘗試調用以下內容:

public double calculateArea(SHAPE shape) {
    Figure figure = map.get(shape);//you dont create object but take it from a map
    return figure.calculate();
}

對於EnumSet,請考慮您具有基本顏色的枚舉,例如:

enum COLORS {
    RED, BLUE, GREEN
}

現在,如果我要創建說黃色的顏色並希望了解相同的成分,則可以將EnumSet與綠色和紅色這兩種顏色一起使用。 同樣,我可以根據我的顏色要求存儲多套不同的產品。

這僅是出於示例目的,但是您甚至可以添加計數,以使說所需的紅色,藍色和綠色像素變化量變得更加復雜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM