<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                <!-- Using EnumMap --> ## 使用 EnumMap EnumMap 是一種特殊的 Map,它要求其中的鍵(key)必須來自一個 enum,由于 enum 本身的限制,所以 EnumMap 在內部可由數組實現。因此 EnumMap 的速度很快,我們可以放心地使用 enum 實例在 EnumMap 中進行查找操作。不過,我們只能將 enum 的實例作為鍵來調用 put() 可方法,其他操作與使用一般的 Map 差不多。 下面的例子演示了*命令設計模式*的用法。一般來說,命令模式首先需要一個只有單一方法的接口,然后從該接口實現具有各自不同的行為的多個子類。接下來,程序員就可以構造命令對象,并在需要的時候使用它們了: ```java // enums/EnumMaps.java // Basics of EnumMaps // {java enums.EnumMaps} package enums; import java.util.*; import static enums.AlarmPoints.*; interface Command { void action(); } public class EnumMaps { public static void main(String[] args) { EnumMap<AlarmPoints,Command> em = new EnumMap<>(AlarmPoints.class); em.put(KITCHEN, () -> System.out.println("Kitchen fire!")); em.put(BATHROOM, () -> System.out.println("Bathroom alert!")); for(Map.Entry<AlarmPoints,Command> e: em.entrySet()) { System.out.print(e.getKey() + ": "); e.getValue().action(); } try { // If there's no value for a particular key: em.get(UTILITY).action(); } catch(Exception e) { System.out.println("Expected: " + e); } } } ``` 輸出為: ``` BATHROOM: Bathroom alert! KITCHEN: Kitchen fire! Expected: java.lang.NullPointerException ``` 與 EnumSet 一樣,enum 實例定義時的次序決定了其在 EnumMap 中的順序。 main() 方法的最后部分說明,enum 的每個實例作為一個鍵,總是存在的。但是,如果你沒有為這個鍵調用 put() 方法來存入相應的值的話,其對應的值就是 null。 與常量相關的方法(constant-specific methods 將在下一節中介紹)相比,EnumMap 有一個優點,那 EnumMap 允許程序員改變值對象,而常量相關的方法在編譯期就被固定了。稍后你會看到,在你有多種類型的 enum,而且它們之間存在互操作的情況下,我們可以用 EnumMap 實現多路分發(multiple dispatching)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看