Свежие отзывы на курс "Основы языка Java":
Стася Грозная 11 дней назад
Виталий Виноградов 14 дней назад
Шикарный курс, гораздо лучше аналогов известных платформ с бесплатными частями для изучения!!! Материал изложен понятно. Очень радует количество задачек и особенно наборы входных параметров в них, которые каждый раз пытаются тебя подловить на неочевидных нюансах, которые не ожидаешь, но могут попасть на входе и все испортить. В целом нужна практика, практика и практика. Было бы неплохо еще какой-нибудь задачник отдельно выпустить для тренировки навыков уже после прохождения самого курса.
Стася Грозная 11 дней назад
Решил изучать Java после Python! Пробовал несколько других курсов от хороших преподавателей, но все казались переусложненными, либо слишком подробными, что тормозило обучение. Нашел этот курс (привлекла невысокая цена и хорошие отзывы), начал проходить, следом появился интерес к Java. По итогу прохождения могу выделить ПЛЮСЫ курса: 1. Теория есть в текстовом и видео формате - кому как больше нравится. 2. Компактный объем. Теория разбита на небольшие разделы, видео длится в среднем 8-12 минут. 3. После теории обязательные тесты и/или задачки на закрепление материала. 4. Минимально требуется изучать дополнительные материалы, обычно теории в 95% случает хватает для решения задач. 5. Оксана (автор курса) оперативно отвечает на все вопросы - почти каждый день за редким исключением. 6. У этого курса есть два продолжения - ООП и Прокачай Java! То есть сразу понятно, что проходить дальше и в какой последовательности. МОМЕНТЫ, на которые я обращал внимание: - Иногда бывало, что в видео есть то, чего нет в текстовой части раздела, или наоборот (обычно это небольшой, но важный нюанс). Поэтому в идеале проверять, что видео совпадает с текстом. Но в целом это не минус, а просто замечание. В видео больше нюансов и проще следить за ходом мысли автора, нежели просто читать сухой текст. - Для совсем новичков в программировании будет сложно, так как автор позиционирует свой курс уже для тех, кто знаком с алгоритмами решения задач и владеет какой-никакой базой (например C/C++). Но если вы знаете, например, основы Python или любого другого языка, то проблем с пониманием у вас не возникнет. Как итог: курсом доволен, буду брать следующий, надеюсь дальше будет только интереснее! КУРС РЕКОМЕНДУЮ ОДНОЗНАЧНО! АВТОРУ СПАСИБО ЗА ПОДДЕРЖКУ И ОТВЕТЫ НА ВСЕ ВОПРОСЫ!
Виталий Виноградов 14 дней назад
👍6
import java.util.*;
public class Test {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("A", 3);
map.put(null, 4);
map.put(null, 5);
System.out.println(map.get("A"));
System.out.println(map.get(null));
System.out.println(map.size());
}
}
👍3
import java.util.*;
class Key {
String value;
Key(String value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
return true;
}
@Override
public int hashCode() {
return 1;
}
}
public class Main {
public static void main(String[] args) {
Map<Key, String> map = new HashMap<>();
map.put(new Key("A"), "first");
map.put(new Key("B"), "second");
map.put(new Key("C"), "third");
System.out.println(map.size());
System.out.println(map.get(new Key("Z")));
}
}
❤2
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put(null, 1);
map.put(null, 2);
map.put("A", null);
map.put("A", 3);
map.put("B", null);
System.out.println(map.get(null));
System.out.println(map.get("A"));
System.out.println(map.get("B"));
}
}
👍3
👍3
Друзья! Последняя неделя была посвящена небольшому отпуску в Польше. Варшава, Гданьск, Торунь. Встреча с младшим сыном и его семьёй, общение и новые впечатления. Всем желаю хорошей семьи и маленьких радостей в жизни!
❤19🔥8😍3
class Student {
String name;
Student(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
Map<Student, Integer> map = new TreeMap<>();
map.put(new Student("Alice"), 1);
map.put(new Student("Alice"), 2);
System.out.println(map.size());
}
}👍3
Как работает TreeMap в Java? 🌳
🔹 TreeMap — это реализация Map, которая хранит ключи в отсортированном порядке.
Но важно понять главное:
📌 Порядок задаётся не equals(), а сравнением:
— через compareTo() (если ключ реализует Comparable)
— или через Comparator, переданный в конструктор
Именно результат сравнения определяет:
— где хранится элемент
— считается ли ключ «тем же самым»
Если compareTo() возвращает 0 — ключи считаются одинаковыми, и значение перезапишется.
⚙️ Под капотом:
TreeMap построен на красно-чёрном дереве, поэтому:
— добавление, удаление, поиск → O(log n)
— элементы всегда отсортированы
💡 Важный момент:
equals() для TreeMap не обязателен,
но лучше, чтобы он был согласован с compareTo() — иначе можно получить неожиданные баги.
🔹 TreeMap — это реализация Map, которая хранит ключи в отсортированном порядке.
Но важно понять главное:
📌 Порядок задаётся не equals(), а сравнением:
— через compareTo() (если ключ реализует Comparable)
— или через Comparator, переданный в конструктор
Именно результат сравнения определяет:
— где хранится элемент
— считается ли ключ «тем же самым»
Если compareTo() возвращает 0 — ключи считаются одинаковыми, и значение перезапишется.
⚙️ Под капотом:
TreeMap построен на красно-чёрном дереве, поэтому:
— добавление, удаление, поиск → O(log n)
— элементы всегда отсортированы
💡 Важный момент:
equals() для TreeMap не обязателен,
но лучше, чтобы он был согласован с compareTo() — иначе можно получить неожиданные баги.
🔥1
import java.util.*;
class Person {
String name;
Person(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
TreeMap<Person, Integer> map = new TreeMap<>(Comparator.comparing(p -> p.name));
Person p1 = new Person("Alice");
Person p2 = new Person("Alice");
map.put(p1, 1);
map.put(p2, 2);
System.out.println(map.get(p1));
}
}
👍2
HashMap vs TreeMap в Java — в чём разница? 🤔
Обе структуры реализуют интерфейс Map, но ведут себя по-разному:
🔹 HashMap
— Быстрая работа (в среднем O(1))
— Не хранит порядок элементов
— Основан на хеш-таблице
— 📌 Ключи должны корректно реализовывать equals() и hashCode()
🔹 TreeMap
— Медленнее (O(log n))
— Хранит элементы отсортированными по ключу
— Основан на красно-чёрном дереве
— 📌 Ключи должны быть сравнимы: реализовывать Comparable (compareTo())
или передаваться с Comparator
📌 Когда что использовать?
— Нужна максимальная скорость → HashMap
— Нужна сортировка или диапазоны (например, от key1 до key2) → TreeMap
💡 Лайфхак: если порядок важен, но сортировка не нужна — посмотри ещё на LinkedHashMap.
Обе структуры реализуют интерфейс Map, но ведут себя по-разному:
🔹 HashMap
— Быстрая работа (в среднем O(1))
— Не хранит порядок элементов
— Основан на хеш-таблице
— 📌 Ключи должны корректно реализовывать equals() и hashCode()
🔹 TreeMap
— Медленнее (O(log n))
— Хранит элементы отсортированными по ключу
— Основан на красно-чёрном дереве
— 📌 Ключи должны быть сравнимы: реализовывать Comparable (compareTo())
или передаваться с Comparator
📌 Когда что использовать?
— Нужна максимальная скорость → HashMap
— Нужна сортировка или диапазоны (например, от key1 до key2) → TreeMap
💡 Лайфхак: если порядок важен, но сортировка не нужна — посмотри ещё на LinkedHashMap.
❤2👍1
Как проще всего вывести содержимое Map на консоль? 🤔
Есть несколько способов, но вот самые удобные и читаемые:
🔹 1. Самый ленивый способ — просто println
Работает из коробки!
Java сама выведет пары в формате:
{key1=value1, key2=value2, key3=value3}
✔️ Отлично подходит для быстрой отладки.
🔹 2. Через цикл for-each и entrySet() (классический вариант):
✔️ Плюс: есть доступ и к ключу, и к значению
✔️ Минус: чуть больше кода
🔹 3. Используя метод forEach() интерфейса Map (начиная с Java 8):
✔️ Плюс: максимально кратко и современно
✔️ Минус: может быть непривычно новичкам
Есть несколько способов, но вот самые удобные и читаемые:
🔹 1. Самый ленивый способ — просто println
System.out.println(myMap);
Работает из коробки!
Java сама выведет пары в формате:
{key1=value1, key2=value2, key3=value3}
✔️ Отлично подходит для быстрой отладки.
🔹 2. Через цикл for-each и entrySet() (классический вариант):
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}✔️ Плюс: есть доступ и к ключу, и к значению
✔️ Минус: чуть больше кода
🔹 3. Используя метод forEach() интерфейса Map (начиная с Java 8):
map.forEach((key, value) ->
System.out.println(key + " = " + value)
);
✔️ Плюс: максимально кратко и современно
✔️ Минус: может быть непривычно новичкам
👍4
“Зачем Вы нам даете тесты по Map?
Мы ведь до этой темы еще не дошли… “ - так, вероятно, скажут те, кто еще изучает “Основы языка Java” или “ООП”.
Да, для Вас приводимый код кажется странным и непонятным. И это нормально!
А я просто хочу привлечь внимание к своему курсу “Прокачай Java” 😊 В нем тема коллекций Java разбирается подробно, но без перегруза.
🤓 А также темы про ввод-вывод, многопоточность, регулярки, лямбда-выражения и Streams…
Тем более, что скоро грядет большая распродажа курсов на Степик. На этот курс будет скидка 20%.
Так что ждем начала распродажи 27 мая, и начинаем разбираться с Map! 💥
Мы ведь до этой темы еще не дошли… “ - так, вероятно, скажут те, кто еще изучает “Основы языка Java” или “ООП”.
Да, для Вас приводимый код кажется странным и непонятным. И это нормально!
А я просто хочу привлечь внимание к своему курсу “Прокачай Java” 😊 В нем тема коллекций Java разбирается подробно, но без перегруза.
🤓 А также темы про ввод-вывод, многопоточность, регулярки, лямбда-выражения и Streams…
Тем более, что скоро грядет большая распродажа курсов на Степик. На этот курс будет скидка 20%.
Так что ждем начала распродажи 27 мая, и начинаем разбираться с Map! 💥
🔥5❤2
class A {
int x = 5;
}
public class Main {
public static void main(String[] args) {
A a1 = new A();
A a2 = a1;
a2.x = 10;
System.out.println(a1.x);
}
}👍1
Повышаю цену на курс "Основы языка Java" 🥲
По рекомендации команды Степика я решила поднять цену на курс "Основы языка Java". Они считают, что низкая цена отпугивает подозрением на низкое качество 🤷♂️.
Но для Вас я зафиксировала прежнюю цену до конца июня.
Вы, конечно, уже прошли (или проходите) этот курс. Но, возможно, захотите подарить его кому-то :) Так что вот ссылка с вшитым промокодом: https://stepik.org/a/124803/pay?promo=c2f50a4565593edb
По рекомендации команды Степика я решила поднять цену на курс "Основы языка Java". Они считают, что низкая цена отпугивает подозрением на низкое качество 🤷♂️.
Но для Вас я зафиксировала прежнюю цену до конца июня.
Вы, конечно, уже прошли (или проходите) этот курс. Но, возможно, захотите подарить его кому-то :) Так что вот ссылка с вшитым промокодом: https://stepik.org/a/124803/pay?promo=c2f50a4565593edb
👍5