Домой Учебники по Java и J2EE В Java Как отсортировать карту по значениям? Интерфейс карты — коллекции Java

В Java Как отсортировать карту по значениям? Интерфейс карты — коллекции Java

399
0

В Java Как отсортировать карту по значению? Есть несколько способов. Здесь мы будем следовать ниже шагов.

1
общественности интерфейс Карта < K , V >

object эти карты keys в values , map не может содержать дубликаты ключей; каждый ключ может отображаться на at-most одно значение HashMap для ArrayList ? Map Интерфейс предоставляет три вида коллекций, которые позволяют просматривать содержимое карты как набор ключей, набор значений или набор отображений ключ-значение.

Есть еще один способ использования Google Guava Library которая содержит несколько основных библиотек Google, на которые мы опираемся в наших проектах на основе Java: коллекции, кэширование, поддержка примитивов, библиотеки параллелизма, общие аннотации , обработка строк, ввод-вывод и т. д.

Вот пример библиотеки Google Guava .

Порядок карты определяется как порядок, в котором итераторы в представлениях коллекции карты возвращают свои элементы. Некоторые реализации карт , такие как TreeMap класс, сделать конкретные гарантии относительно их заказа; другие, как HashMap класс, не надо.

Давайте посмотрим на шаги ниже и пример

  1. Создать файл CrunchifyMapUtil.java
  2. Мы создадим crunchifySortMap функция использует LinkedHashMap которые поддерживают порядок вставки
  3. Основной метод, в котором мы создадим одну карту initialCrunchifyMapValue со случайным целочисленным значением
  4. Проходить initialCrunchifyMapValue в crunchifySortMap которая возвращает отсортированную карту под названием sortedCrunchifyMapValue
  5. Теперь мы будем перебирать обе карты, чтобы увидеть результат
CrunchifyMapUtil.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
пакет crunchify. ком . учебные пособия ;
Импортировать Java. Util. * ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyMapUtil {
/ *
* Сортировка карты по значениям.
*
* @param ключ карты.
*
* @param значение для сортировки в соответствии с.
*
* @param crunchifySortMap карту для сортировки.
*
* @ вернуть карту, отсортированную по значениям.
* /
общественности статический < К , В продолжается Сопоставимые супер V>> Карта < K , V > crunchifySortMap ( окончательный Карта < K , V > mapToSort ) {
Список < Карта . Вступление < K , V>> записи знак равно новый ArrayList < Карта . Вступление < K , V>> (. MapToSort размер ());
записи . addAll ( mapToSort . entrySet ( ) ) ;
// сортирует указанный список в соответствии с порядком, заданным указанным компаратором
Коллекции . сортировать ( записи , новый Компаратор < Карта . Вступление < K , V>> () {
@Override
общественности ИНТ сравнить ( окончательный Карта. Вступление < K , V > entry1 , окончательный Карта. Вступление < K , V > entry2 ) {
// сравнивает этот объект с указанным объектом для заказа
вернуть запись1 . getValue ( ) . compareTo ( entry2 . getValue ( ) ) ;
}
} ) ;
Карта < K , V > sortedCrunchifyMap знак равно новый LinkedHashMap < K , V > ( ) ;
// Метод Map.entrySet возвращает коллекционный вид карты
за ( Карта . Вступление < К , V > запись : записи ) {
sortedCrunchifyMap . положить ( entry . getKey ( ) , запись. getValue ( ) ) ;
}
вернуть sortedCrunchifyMap ;
}
общественности статический недействительным главная ( Строка args [ ] ) {
Случайный случайный знак равно новый Случайный ( System . CurrentTimeMillis ( ) ) ;
// Переменная с размером 10
Карта < Строка , Целое число > initialCrunchifyMapValue знак равно новый HashMap < String , Целое число > ( 10 ) ;
за ( int я знак равно 0 ; я < 10 ; ++ я ) {
initialCrunchifyMapValue . положить ( Crunchify # + я , случайным образом . nextInt ( 500 ) ) ;
}
log ( Initial CrunchifyMapValue ========== / n ) ;
за ( Карта . Вступление < Строка , Целое число > запись : initialCrunchifyMapValue . entrySet ( ) ) {
log ( entry . getKey ( ) + «/ т» + запись. getValue ( ) ) ;
}
Карта < Строка , Целое число > sortedCrunchifyMapValue знак равно новый HashMap < String , Целое число > ( 10 ) ;
// Сортируем карту по значению, вызывая crunchifySortMap ()
sortedCrunchifyMapValue знак равно CrunchifyMapUtil . crunchifySortMap ( initialCrunchifyMapValue ) ;
log ( / nSorted CrunchifyMapValue ========== / n ) ;
за ( Карта . Вступление < Строка , Целое число > запись : sortedCrunchifyMapValue . entrySet ( ) ) {
log ( entry . getKey ( ) + «/ т» + запись. getValue ( ) ) ;
}
}
частный статический недействительным log ( Строка ценность ) {
Система. вне. println ( значение ) ;
}
}

Eclipse Console Результат:

Выход

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Начальный CrunchifyMapValue : ==========
Crunchify # 0 271
Crunchify # 1 126
Crunchify № 2 83
Crunchify # 3 462
Crunchify # 4 123
Crunchify # 5 393
Crunchify № 6 40
Crunchify # 7 65
Crunchify # 8 82
Crunchify # 9 437
Сортировка CrunchifyMapValue ==========
Crunchify № 6 40
Crunchify # 7 65
Crunchify # 8 82
Crunchify № 2 83
Crunchify # 4 123
Crunchify # 1 126
Crunchify # 0 271
Crunchify # 5 393
Crunchify # 9 437
Crunchify # 3 462
В Java Как отсортировать карту по значениям? Интерфейс карты — коллекции Java

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Как отсортировать HashMap по ключу и значению в Java 8 - полное руководство

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь