tl; Dr.
Map< Integer , String >Tuşa göre sıralanmış bir sırayla tutmak için , SortedMap/ NavigableMaparabirimlerini 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
MapJava 11 ile birlikte verilen on uygulamanın özelliklerini gösteren bir grafik tablo .
NavigableMapArayüz nedir SortedMapilk etapta olmalıydı. SortedMapMantıksal kaldırılması gerektiğini ancak bazı 3. taraf haritası uygulamaları arayüzü kullanarak edilebilir olamaz.
Bu tabloda görebileceğiniz gibi, SortedMap/ NavigableMaparabirimlerini yalnızca iki sınıf uygular :
Sıralanmış sırayla bu tutmak tuşlarından Hem, ya onların doğal emriyle (kullanarak compareToyö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 Comparatoruygulama 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.
LinkedHashMapSınıf onlar sırayla onun girişleri döndürür aslen yerleştirilen .
EnumMapgiriş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 >) DayOfWeekJava'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.
