Домой Учебники по Java и J2EE Как отсортировать HashMap по ключу и значению в Java 8 — полное...

Как отсортировать HashMap по ключу и значению в Java 8 — полное руководство

968
0

В Java 8 — Как отсортировать карту?

На Crunchify мы написали почти ~ 400 учебных пособий по Java, и это дополнение к категории Java8.

Я люблю коллекцию Java и имею несколько учебных пособий о том, как перебирать Map и List , LinkedList , JSONArray и многое другое.

В этом уроке мы рассмотрим лучший способ сортировки HashMap по ключу и значению в Java8.

Давайте начнем:

  1. Мы создадим класс CrunchifySortMapByKeyValueJava8.java
  2. Создайте HashMap crunchifyMap, и это то, что мы будем использовать для сортировки по ключу и значению.
  3. For KEY : мы собираемся добавить случайную компанию из списка
    • Скороговорка: случайное число от 1 до 10 + (-) + 1 компания из списка
    • список компаний: crunchify.com, google.com, twitter.com
  4. For VALUE : мы собираемся добавить одно случайное число от 1 до 50
  5. Мы распечатаем оригинальную карту, отсортированную по ключевой карте и отсортированную по стоимости

Map.Entry. comparingByKey() возвращает компаратор, который сравнивает Map.Entry в естественном порядке по ключу.

Map.Entry. comparingByValue() возвращает компаратор, который сравнивает Map.Entry в естественном порядке по значению.

Вот полный код Java:

Пожалуйста, внимательно посмотрите на два вопроса, упомянутых в коде ниже. Это простые утилиты, которые просто подходят, если вы хотите использовать их в своем проекте.

  • Как получить случайное значение из ArrayList ?
  • Как перебрать HashMap в Java 8 ?
CrunchifySortMapByKeyValueJava8.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
79
80
81
82
83
84
85
86
87
88
89
90
91
пакет crunchify. ком . учебник ;
Импортировать Java. Util. ArrayList ;
Импортировать Java. Util. HashMap ;
Импортировать Java. Util. LinkedHashMap ;
Импортировать Java. Util. Карта ;
Импортировать Java. Util. Случайный ;
Импортировать Java. Util. поток. Стрим ;
/ **
* @author Crunchify.com
*
* Лучший способ сортировки HashMap по ключу и значению в Java8 — учебник от App Shah
*
* /
общественности учебный класс CrunchifySortMapByKeyValueJava8 {
частный статический Случайный crunchifyRandom знак равно новый Случайный ( ) ;
общественности статический недействительным main ( Строка [ ] argv ) {
Карта < Строка , Целое число > crunchifyMap знак равно новый HashMap < > ( ) ;
// Давайте сначала создадим компанию ArrayList
ArrayList компании знак равно новый ArrayList < > ( ) ;
компании . добавить ( Crunchify.com ) ;
компании . добавить ( Google.com ) ;
компании . добавить ( Twitter.com ) ;
// Давайте добавим 10 записей в HashMap crunchifyMap
за ( int я знак равно 1 ; я < = 10 ; ++ я ) {
// Как получить случайное значение из ArrayList?
строка Компания знак равно компании . get ( crunchifyRandom . nextInt ( companies . size ( ) ) ) ;
// В основном мы создаем
// Ключ с шаблоном: 1-Crunchify, 5-Google и так далее …
// Случайное значение: число от 1 до 50
crunchifyMap . положить ( crunchifyRandom . nextInt ( 10 ) + + компания , crunchifyRandom . nextInt ( 50 ) ) ;
}
log ( ~~~~~~~~~~~~~~ Original HashMap (значение crunchifyMap) ~~~~~~~~~~~~~~ ) ;
log ( crunchifyMap ) ;
log ( / n ~~~~~~~~~~~~~~ Обновлен HashMap после сортировки по ключу ~~~~~~~~~~~~~~ ) ;
Карта < Строка , Целое число > ключ знак равно crunchifySortByKey ( crunchifyMap ) ;
iterateThroughHashMapJava8 ( ключ ) ;
log ( / n ~~~~~~~~~~~~~~ Обновленный HashMap после сортировки по значению ~~~~~~~~~~~~~~ ) ;
Карта < Строка , Целое число > значение знак равно crunchifySortByValue ( crunchifyMap ) ;
iterateThroughHashMapJava8 ( значение ) ;
}
// Простая лог-инструкция
частный статический недействительным log ( Объект строка ) {
Система. вне. println ( строка ) ;
}
// Как перебрать HashMap в Java 8?
частный статический недействительным iterateThroughHashMapJava8 ( Map < String , Целое число > crunchifyMap ) {
crunchifyMap . forEach ( ( k , v ) > {
Система. вне. println ( Ключ: + К + / т / т Значение: + v ) ;
} ) ;
}
// Давайте отсортируем HashMap по ключу
общественности статический < К продолжается Сопоставимые супер K > , V > Карта < K , V > crunchifySortByKey ( Карта < K , V > crunchifyMap ) {
Карта < K , V > crunchifyResult знак равно новый LinkedHashMap < > ( ) ;
Поток < Карта . Вступление < K , V>> sequentialStream знак равно crunchifyMap . entrySet ( ) . поток ( ) ;
// comparingByKey () возвращает компаратор, который сравнивает Map.Entry в естественном порядке по ключу.
sequentialStream . отсортировано ( Map . Entry . comparingByKey ( ) ) . forEachOrdered ( c > crunchifyResult . положить ( c . getKey ( ) , с . getValue ( ) ) ) ;
вернуть crunchifyResult ;
}
// Давайте отсортируем HashMap по значению
общественности статический < К , В продолжается Сопоставимые супер V>> Карта < K , V > crunchifySortByValue ( Карта < K , V > crunchifyMap ) {
Карта < K , V > crunchifyResult знак равно новый LinkedHashMap < > ( ) ;
Поток < Карта . Вступление < K , V>> sequentialStream знак равно crunchifyMap . entrySet ( ) . поток ( ) ;
// comparingByValue () возвращает компаратор, который сравнивает Map.Entry в естественном порядке по значению.
sequentialStream . отсортировано ( Map . Entry . comparingByValue ( ) ) . forEachOrdered ( c > crunchifyResult . положить ( c . getKey ( ) , с . getValue ( ) ) ) ;
вернуть crunchifyResult ;
}
}

Выход консоли Eclipse:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Оригинальный HashMap ( значение crunchifyMap ) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
{ 9Google . com = 36 , 6Твиттер . com = 17 , 3Google . com = 39 , 2Твиттер . com = 43 , 5Crunchify. com = 2 , 8Google . com = 5 , 8Crunchify. com = 47 , 5Google . com = 10 , 7Google . com = 3 }
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Обновлен HashMap после сортировки по ключу ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Ключ : 2Твиттер . com Значение : 43
Ключ : 3Google . com Значение : 39
Ключ : 5Crunchify. com Значение : 2
Ключ : 5Google . com Значение : 10
Ключ : 6Твиттер . com Значение : 17
Ключ : 7Google . com Значение : 3
Ключ : 8Crunchify. com Значение : 47
Ключ : 8Google . com Значение : 5
Ключ : 9Google . com Значение : 36
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Обновлен HashMap после сортировки по значению ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Ключ : 5Crunchify. com Значение : 2
Ключ : 7Google . com Значение : 3
Ключ : 8Google . com Значение : 5
Ключ : 5Google . com Значение : 10
Ключ : 6Твиттер . com Значение : 17
Ключ : 9Google . com Значение : 36
Ключ : 3Google . com Значение : 39
Ключ : 2Твиттер . com Значение : 43
Ключ : 8Crunchify. com Значение : 47
Как отсортировать HashMap по ключу и значению в Java 8 — полное руководство

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Java: Как добавить «n» минут в объект данных календаря?

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

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