日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java previous_java – 在枚举类型上实现`next`和`previous`的最好方法是什么?

發布時間:2025/3/15 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java previous_java – 在枚举类型上实现`next`和`previous`的最好方法是什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

假設我有一個枚舉:

enum E {

A, B, C;

}

如lucasmo by lucasmo所示,枚舉值按照它們被初始化的順序存儲在靜態數組中,您可以稍后用E.values()檢索(克隆)此數組。

現在假設我想實現E#getNext和E#getPrevious,以使所有下列表達式求值為true:

E.A.getNext() == E.B

E.B.getNext() == E.C

E.C.getNext() == E.A

E.A.getPrevious() == E.C

E.B.getPrevious() == E.A

E.C.getPrevious() == E.B

我目前的實現getNext如下:

public E getNext() {

E[] e = E.values();

int i = 0;

for (; e[i] != this; i++)

;

i++;

i %= e.length;

return e[i];

}

和類似的getPrevious方法。

然而,這個代碼看起來很麻煩(例如,“空”for循環,可計數濫用計數器變量,并且在最壞的情況下可能是錯誤的(思考反思,可能)。

在Java 7中為枚舉類型實現getNext和getPrevious方法的最佳方法是什么?

注意:我不打算這個問題是主觀的。我對“最好”實現的請求是要求最快,最干凈,最可維護的實現的簡寫。

總結

以上是生活随笔為你收集整理的java previous_java – 在枚举类型上实现`next`和`previous`的最好方法是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。