tl; Dr.
Map< Integer , String >
Tuşa göre sıralanmış bir sırayla tutmak için , SortedMap
/ NavigableMap
arabirimlerini uygulayan iki sınıftan birini kullanın :
TreeMap
ConcurrentSkipListMap
Haritayı tek bir iş parçacığında değiştiriyorsanız, ilk TreeMap
,. Eğer dişler arasında manipüle ediyorsanız, ikincisini kullanın ConcurrentSkipListMap
.
Ayrıntılar için aşağıdaki tabloya ve aşağıdaki tartışmaya bakın.
ayrıntılar
Map
Java 11 ile birlikte verilen on uygulamanın özelliklerini gösteren bir grafik tablo .
NavigableMap
Arayüz nedir SortedMap
ilk etapta olmalıydı. SortedMap
Mantıksal kaldırılması gerektiğini ancak bazı 3. taraf haritası uygulamaları arayüzü kullanarak edilebilir olamaz.
Bu tabloda görebileceğiniz gibi, SortedMap
/ NavigableMap
arabirimlerini yalnızca iki sınıf uygular :
Sıralanmış sırayla bu tutmak tuşlarından Hem, ya onların doğal emriyle (kullanarak compareTo
yöntemi Comparable
( https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ Comparable.html ) arayüzü) veya geçirdiğiniz bir Comparator
uygulama ile. Bu iki sınıf arasındaki fark, ikinci bir, yani ConcurrentSkipListMap
, bir evreli yüksek eşzamanlı .
Aşağıdaki tabloda yer alan Yineleme sırası sütununa da bakın.
LinkedHashMap
Sınıf onlar sırayla onun girişleri döndürür aslen yerleştirilen .
EnumMap
girişleri anahtarın enum sınıfının tanımlandığı sıraya göre döndürür . Örneğin, hangi çalışanın haftanın hangi gününü kapsadığını gösteren bir harita ( Map< DayOfWeek , Person >
) DayOfWeek
Java'da yerleşik enum sınıfını kullanır . Bu numaralandırma ilk Pazartesi ve son Pazar ile tanımlanır. Yani bir yineleyicideki girdiler bu sırayla görünecektir.
Diğer altı uygulama, girdilerini bildirdikleri sıra hakkında hiçbir söz vermemektedir.