В Java с версии 9 появилась возможность использовать
private методы в интерфейсах. Эти методы предназначены для улучшения внутренней организации интерфейсов, позволяя избежать дублирования кода в default и static методах. private методы помогают реализовать общую логику, к которой могут обращаться другие методы интерфейса, но они остаются недоступными для классов, реализующих интерфейс.private методы могут быть как экземплярными, так и static.Пример:
public interface MyInterface {
default void showMessage() {
print("Default method calling private method");
}
static void showStaticMessage() {
print("Static method calling private method");
}
// Private method for reuse
private static void print(String message) {
System.out.println(message);
}
}
#java #interface #private
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥1
В отличие от Queue, элементы PriorityQueue не упорядочены по времени их добавления, а по приоритету.
Основные методы:
add(E e) - добавляет элемент в очередь.
remove() - удаляет и возвращает элемент с наивысшим приоритетом. Если очередь пуста, генерируется исключение
NoSuchElementException.poll() - удаляет и возвращает элемент с наивысшим приоритетом. Если очередь пуста, возвращает
null.peek() - возвращает, но не удаляет элемент с наивысшим приоритетом. Если очередь пуста, возвращает null.
element() - возвращает, но не удаляет элемент с наивысшим приоритетом. Если очередь пуста, генерируется исключение
NoSuchElementException.Пример:
class Task implements Comparable<Task> {
String name;
Integer priority;
public Task(String name, Integer priority) {
this.name = name;
this.priority = priority;
}
@Override
public int compareTo(@NotNull Task o) {
return priority - o.priority;
}
}
public class Test {
public static void main(String[] args) {
PriorityQueue<Task> pq = new PriorityQueue<>();
pq.add(new Task("Task1", 1));
pq.add(new Task("Task5", 5));
pq.add(new Task("Task2", 2));
pq.add(new Task("Task4", 4));
pq.add(new Task("Task3", 3));
while (!pq.isEmpty()) {
System.out.println(pq.poll().name);
// Выведет: Task1, Task2, Task3, Task4, Task5
}
}
}
#java #PriorityQueue
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4
В Java коллекции Map предоставляют возможность хранить пары "ключ-значение". Два популярных варианта —
HashMap и TreeMap. Давайте разберем их ключевые особенности и когда их лучше использовать.📚 Kраткие определения:
-
HashMap: - Неупорядоченная коллекция.
- Основан на хэш-таблице.
-
TreeMap: - Упорядоченная коллекция.
- Основан на красно-черном дереве.
- Поддерживает сортировку по ключам.
⚖️ Когда использовать:
-
HashMap:- Если важна производительность и порядок хранения не имеет значения.
- Когда нужно быстро получать значения по ключу
-
TreeMap:- Если необходимо хранить элементы в отсортированном порядке.
- Для использования функционала "примитивного" поиска (например,
firstKey() или lastKey()).📌 Подведение итогов:
Выбор между
HashMap и TreeMap зависит от ваших требований к производительности и порядку элементов. Помните, что HashMap лучше подходит для большинства случаев, когда необходим быстрый доступ, а TreeMap — для упорядоченного хранения данных.#java #HashMap #TreeMap
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1