На Leetcode я решал задачу с хэшмапой и подумал, что мне нужно отсортировать хэшмапу по значениям.
В результате я погуглил, как отсортировать hashmap по значениям, но не смог понять ни одного из них, потому что не знал о
В Java компаратор - это объект, который можно использовать для сравнения двух объектов класса, чтобы определить их порядок относительно друг друга. Он используется для обеспечения упорядочения коллекций объектов, которые не имеют естественного упорядочения, или для обеспечения определенного упорядочения объектов класса, который имеет естественное упорядочение, но не то, которое вам нужно.
Чтобы использовать компаратор, вы определяете класс, реализующий интерфейс java.util.Comparator, и переопределяете его метод compare. Этот метод принимает на вход два объекта и возвращает значение int, которое показывает, меньше, равен или больше первый объект, чем второй. Затем вы можете использовать этот компаратор для сортировки коллекции объектов
import java.util.*; public class Test { public static void main(String[] args) { test(); } public static void test() { HashMap<String, Integer> mp = new HashMap<>(); mp.put("adam", 90); mp.put("chris", 80); mp.put("Zan", 100); System.out.println(mp); List<Map.Entry<String,Integer>> list = new ArrayList<>(mp.entrySet()); System.out.println(list); // ******** Sorting Using Comparator ******** Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){ public int compare(Map.Entry<String, Integer> o1,Map.Entry<String, Integer> o2) { return (o1.getValue()).compareTo(o2.getValue()); // return (o1.getKey()).compareTo(o2.getKey()); to sort by keys } }); LinkedHashMap<String,Integer> sortmp = new LinkedHashMap<>(); for(Map.Entry<String,Integer> k : list ) { sortmp.put(k.getKey(), k.getValue()); } System.out.println(list); System.out.println(sortmp); } }
Выход
{Адам=90, Крис=80, Зан=100}
[adam=90, chris=80, Zan=100]
[chris=80, adam=90, Zan=100]
{Крис=80, Адам=90, Зан=100}
2. Лямбда-выражение в JAVA
В Java лямбда-выражение - это способ создания экземпляра функционального интерфейса (интерфейса с одним абстрактным методом) путем написания простой, краткой функции вместо анонимного внутреннего класса. Лямбда-выражения можно использовать для передачи функции в качестве аргумента методу или для определения реализации метода интерфейса inline.
3. Потоковый API в JAVA
Java Stream API - это набор классов и интерфейсов в языке программирования Java, который позволяет выполнять операции над последовательностью элементов, такие как фильтрация, сопоставление и сокращение, в декларативной форме. Он является частью пакета java.util.stream, который был добавлен в Java 8.
Вот пример того, как можно использовать Stream API для фильтрации списка целых чисел, удвоения значений оставшихся элементов, а затем суммирования полученных значений:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); int sum = numbers.stream() .filter(n -> n % 2 == 0) .mapToInt(n -> n * 2) .sum(); System.out.println(sum);
Выходным результатом этого кода будет 12, потому что он отфильтровывает нечетные числа (1, 3 и 5), удваивает оставшиеся числа (2 и 4), а затем суммирует получившиеся числа (4 и 8).
Для лучшего понимания вы можете посетить приведенные ниже ссылки youtube, где все ваши сомнения будут развеяны
2. учебник по лямбда-выражению в java
Я надеюсь, что вы узнаете что-то новое из этого... Спасибо.
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.