JavaRush /Java блог /Архив info.javarush /Уровень 8: план уровня и доп. материалы
hubert
41 уровень

Уровень 8: план уровня и доп. материалы

Статья из группы Архив info.javarush
План уровня:
  • Коллекции: LinkedList, HashSet, HashMap. Date - дата.
  • Коллекции Set - множество, List - список, Map - словарь (или карта).
  • List -> ArrayList, LinkedList, Vector, Stack.
  • Set -> HashSet, TreeSet, SortedSet.
  • Map -> HashMap, TreeMap, SortedMap, Hashtable.
  • Отличие реализаций
  • Работа с итераторами Iterator. Методы hasNext(), next()
  • Map.Entry. Методы getKey(), getValue()
  • Работа с датой - класс Date.

На этом уровне изучается обзор коллекций. Детальное углубленное изучение будет на 30+ уровнях.

Курс Java
Что еще можно посмотреть на досуге: Почитать про коллекции Статья на хабре про ArrayList Статья на хабре про LinkedList http://habrahabr.ru/post/128017/ Пример удаления записей из мапы: Map map = new HashMap<>(); map.put("1", "2"); map.put("3", "4"); Map mapCopy = new HashMap<>(map); for(Map.Entry pair : mapCopy.entrySet()) { map.remove(pair.getKey()); }
Нашли классную ссылку к материалу данной темы? Добавьте ее сюда в виде комментария. Возможно, именно Ваша ссылка поможет другому человеку стать программистом и улучшить свою жизнь!

Вернуться к плану обучения
Вернуться к обучению
java онлайн
на JavaRush
Комментарии (93)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Max257-2 Уровень 20
8 августа 2018
Альтернативная конструкция удаления из Map, без необходимости её копировать. Iterator<Map.Entry<>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { if (iterator.next().getValue() [условие]){ iterator.remove(); } } Имхо более понятное и простое чем от Профессора.
Александр Уровень 16
5 августа 2018
Ребята, а может кто-нибудь объяснить, как не засыпать, когда читаешь теорию?)) Реально проблема!))
Konstantin Уровень 22
19 июля 2018
Java Collections: http://www.baeldung.com/java-collections
1 июля 2018
Кто может заапрувить безопасность init.ru? Ато хром его чет не особо любит
Евгений Уровень 22
26 июня 2018
Вот гад этот профессор! Еслиб конструкцию про удаление мапы сразу в лекции положил с объяснением - я б часа 3 сэкономил...
Evgeny K Уровень 18
17 июня 2018
Почитать про коллекции Что-то не открывается
Rihard1985 Уровень 33 Master
3 июня 2018
Старый чушок этот профессор)) извините за мой французский)
Dimidrolus Уровень 13
19 января 2017


ребята, а почему в связном списке вставка елемента быстрая? ведь если будет список длиной 9999 елементов, а надо вставить на позицию 4000, то надо будет пройтись по списку 4000 раз от начала, так почему же вставка быстрая??? что то меня это сбивает с толку
velis Уровень 32
17 января 2017
Не понятно почему во всех примерах указано создание объектов через родительский класс?
Set<String> set = new HashSet<String>();
List<String> list = new ArrayList<String>();
Map<String, String> map = new HashMap<String, String>();

Почему нельзя сразу указывать конкретный класс коллекции?
HashSet<String> set = new HashSet<String>();
ArrayList<String> list = new ArrayList<String>();
HashMap<String, String> map = new HashMap<String, String>();
kostia_bondarenko Уровень 40
7 января 2017
Почему везде написано «если ты собираешься вставлять (или удалять) в середину коллекции много элементов, то тебе лучше использовать LinkedList». Но а по факту, если мы добавляем элементы в середину большого списка, то через ArrayList все быстрей.
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

/* Измерить сколько времени занимает 10 тысяч вставок для каждого списка
Измерить, сколько времени занимает 10 тысяч вставок для каждого списка.
Метод getTimeMsOfInsert  должен вернуть время его исполнения в миллисекундах.
*/

public class Solution {
    public static void main(String[] args) {
        System.out.println(getTimeMsOfInsert(new ArrayList()));
        System.out.println(getTimeMsOfInsert(new LinkedList()));
    }

    public static long getTimeMsOfInsert(List list) {
        for (int i = 0; i < 100000; i++) {
            list.add(0, new Object());
        }
        Date now = new Date();//напишите тут ваш код

        insert10000(list);

        Date nowafter = new Date();//напишите тут ваш код

        return nowafter.getTime() - now.getTime();
    }

    public static void insert10000(List list) {
        for (int i = 0; i < 10000; i++) {
            list.add(list.size() / 2, new Object());
        }
    }
}