Очень понравились уроки, информация воспринимается на лету)! Все так просто и доступно рассказывается, что думаю будет понятно даже совсем совсем начинающему программисту, ну как я например:) У автора определенно талант к преподаванию, спасибо ему большое за труд и успехов во всем!
Вместо нисходящего преобразования: String animal = (String) animals.get(1); к строковому типу можно привести и так: String animal = animals.get(1).toString(); как делать правильнее?
toString() не приводит к строковому типу, а возвращает строковое представление объекта. Другими словами он не закастит объект в строку, а вернёт строковое представление класса Object. Хотя в данном случае благодаря позднему связыванию вернётся ожидаемая строка
:) Ну вот теперь же понятно! Как то в джавараш пропустили перед дженериками даункаст и было не понятно зачем он вообще нужен. Как всегда лучшее изложение, благодарю!
Спасибо вам. Уроки по коллекциям и по многопоточности уже готовы! Более 15 часов материала. В данный момент проверяю все записанные уроки и исправляю мелкие неточности. Следите за обновлениями на канале!
Мы создали объект типа List, класса ArrayList. Вопрос, 4:00. А можно ли сказать что у нас не получается в переменную типа Стринг вывести ячейку динамического массива из за того что она имеет объект типа List. Или я фигню говорю?
Мне кажется, что при использовании объекта типа List мы уже должны добавить в переменную какие-то значения(как это сделал автор видео, написав "animals.add("Cat");" ). А вот для вывода элемента в ячейку массива нужна какая-то другая технология. Поправьте, если не прав. Сам только учусь.
Извините, не понял кто такие дженерики. Это когда мы просто явно указываем тип данных ArrayList'y ? В видео сказано 9:55 "с появлнеием дженериков", т.е. во множественном числе, а это обозначает что это свойство применимо не только к ArrayList'am. Когда меня спросить кто такие дженерики - я не смогу дать ответ. Это кода не надо даункастить аррайлист.
www.quizful.net/post/java-generics-tutorial , с помощью женериков вы не сможете добавить например в коллекцию не правильный тип например: List yourclazzList = new ArrayList(); yourclazzList.add(4);
В данном примере кода очень мало, весь он занимает процентов 20% от всего открытого окна идеи на экран. То есть можно было бы увеличить в 5 раз, чтобы на видео был виден только код без пустого места. А так, на небольшом смартфоне сложно вглядываться в эти маленькие строчки кода на краю тёмной пустоты. Пожелание - на будущее увеличивать код (в 5 раз наверное слишком, но в 2-3 раза - вполне хватит).
@learning diary на самом деле, я узнал недавно, что на полноэкранном режиме с приложения TH-cam на смартфоне тоже можно увеличивать - двумя пальцами раздвигаешь по экрану в стороны - и увеличивает. Но это не всегда удобно.
generic создан не из за неудобства, а потому что при получении значения были ошибки , потому что не известно какой тип будет на выходе, это важно !!! хотя бы сюда гляньте www.quizful.net/post/java-generics-tutorial
Я что то пропустил? Почему в предыдущих уроках ничего не объясняли про List и ArrayList и сразу начали урок с ними, я даже не понял как их использовать и почему автор видео таким образом создает эти самые списки
Просто на них удобно объяснить параметризацию. Подробнее о них смотрите в моем курсе Продвинутая Java: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776
мне кажется что объясняя тему на массивах сначала надо было обьяснить массивы) первое видео где может возникнуть непонимание( кто не знаком с массивами)
Хоть и прошло 2 года, но напишу для будущих поколений =))) Выражение "ArrayList хранит объекты" означает тоже самое что "ArrayList хранит ссылки на объекты", так что автор видео все правильно говорит. Сам по себе ArrayList не может хранить примитивы
Видимо что то поменялось в более поздней версии Java, но все нормально вывелось без и привидения типа: List animals = new ArrayList(); animals.add("cat"); animals.add("dog"); animals.add("frog"); animals.add("horse"); for (int i = 0; i < animals.size(); i++) System.out.println(animals.get(i)); ______________ cat dog frog horse
у меня тоже выводится также java version "17.0.2" 2022-01-18 LTS VSC ругается, но все выполняется - List is a raw type. References to generic type List should be parameterized - ArrayList is a raw type. References to generic type ArrayList should be parameterized
@@Geovald обычно toString() переопределяют чтобы выводились поля класса. Если мы не определили в своем классе метод toString(), то будет вызван метод toString() класса Object, и выведет нам "адрес" на объект. В общем если туСтринг переопределен, то при использовании дженерика по типу ArrayList arr = new ArrayList(); (где T - параметр типа) мы уверены, что вызывая println(arr.get(i)) выведутся наши поля
Странно. У меня, вроде, последняя Java. Но почему-то треугольные скобки не воспринимает. IntelliJDEA 2018 3.2 Error:(30, 47) java: diamond operator is not supported in -source 1.6 (use -source 7 or higher to enable diamond operator)
Регистрируйтесь на курс "Продвинутая Java": th-cam.com/video/rRe1vT0SDD8/w-d-xo.html
Практикуйтесь в написании Java кода: java-marathon.tilda.ws
В курсе "Продвинутая Java", где я разбираю коллекции, я даю ответ на этот вопрос.
По-моему даже на первом уроке. Посмотрите его, он бесплатный.
Потрясающие по лаконичности и понятности подачи материала уроки!!! Это лучший контент по данной тематике в русскоязычном сегменте ютуба!!!
Экскурс в то как было до 5 java, наконец-то дал понимание что такое дженерики. Супер. Спасибо.
Спасибо за доступно излагаемые интересные уроки!!! :)
Спасибо большое! Всё очень понятно. Пока что не встречал людей, которые объясняют материал также )))
Когда человек может простыми словами объяснить тему то значит хорошо в ней разбирается сам.
учусь в минске на курсах джава. всей группой ваши видео пересматриваем. самый толковый препод. подробнее и понятнее не бывает.
привет из Минска)
@@FoxChpoks Как там в Минске?
Jus да норм)
Конкретно сегодня по проспекту ходил, тише воды обстановочка. А вот вчерашнего дня в инете полно) пару сотен тысяч человек было в Минске
привет. ну что уже работаешь программистом?
@@gera.v.v да. И я с Беларуси тоже. Изучаю вот ее третий месяц. Трудно было найти работу? И что ещё посоветуешь по учебе?
Проще, чем в универе. Наконец-то я понял эту тему. Спасибо!!!
Очень благодарен автору за этот материал. Давно уже начал часто замечать "List" и не знал что это, а тут такое понятное объяснение ВАУ!. спасибо тебе
Очень понравились уроки, информация воспринимается на лету)! Все так просто и доступно рассказывается, что думаю будет понятно даже совсем совсем начинающему программисту, ну как я например:) У автора определенно талант к преподаванию, спасибо ему большое за труд и успехов во всем!
Спасибо!
Наиль, большое спасибо за уроки. 🤗
Вместо нисходящего преобразования:
String animal = (String) animals.get(1);
к строковому типу можно привести и так:
String animal = animals.get(1).toString();
как делать правильнее?
toString() не приводит к строковому типу, а возвращает строковое представление объекта. Другими словами он не закастит объект в строку, а вернёт строковое представление класса Object. Хотя в данном случае благодаря позднему связыванию вернётся ожидаемая строка
:) Ну вот теперь же понятно! Как то в джавараш пропустили перед дженериками даункаст и было не понятно зачем он вообще нужен. Как всегда лучшее изложение, благодарю!
8:10
Давайте создадим свой Объе́кт класса Animal.
Обычные люди: Cat, Dog, Mouse....
Наиль: oUrAniMaL~~~
Спасибо Вам огромное за качественные уроки!
Очень бы хотелось увидеть уроки по коллекциям в Вашем исполнении!
Спасибо вам.
Уроки по коллекциям и по многопоточности уже готовы! Более 15 часов материала. В данный момент проверяю все записанные уроки и исправляю мелкие неточности.
Следите за обновлениями на канале!
@@alishevN Здравствуйте! Я не могу найти урок по коллекциям в вашем исполнении. Подскажите, он есть в доступе сейчас?
Спасибо за работу!
Спасибо. Объяснено просто и понятно.
Замечательный урок!
Огромнейшее спасибо!
Алишев, крутые уроки у тебя по Джаве!
Мы создали объект типа List, класса ArrayList.
Вопрос, 4:00. А можно ли сказать что у нас не получается в переменную типа Стринг вывести ячейку динамического массива из за того что она имеет объект типа List. Или я фигню говорю?
Мне кажется, что при использовании объекта типа List мы уже должны добавить в переменную какие-то значения(как это сделал автор видео, написав "animals.add("Cat");" ). А вот для вывода элемента в ячейку массива нужна какая-то другая технология. Поправьте, если не прав. Сам только учусь.
Классно и понятно!
Спасибо, добрый человек )))
Спасибо. Чётко всё
Все супер) Спасибо тебе)
Хотелось бы понять использование Type Erasure
Хотелось бы увидеть описание под роликом, примеры применения.
Наконец-то "коротко и ясно")
Супер!
спасибо!
Отличный канал! С меня подписка
А что такое Generic?
сколько же неучей который обучают , наконец то я понял целенаправленность треугольных скобок. Вот настоящий шарящий программист
Круто, как всегда
Спасибо!
Извините, не понял кто такие дженерики. Это когда мы просто явно указываем тип данных ArrayList'y ? В видео сказано 9:55 "с появлнеием дженериков", т.е. во множественном числе, а это обозначает что это свойство применимо не только к ArrayList'am. Когда меня спросить кто такие дженерики - я не смогу дать ответ. Это кода не надо даункастить аррайлист.
www.quizful.net/post/java-generics-tutorial , с помощью женериков вы не сможете добавить например в коллекцию не правильный тип
например:
List yourclazzList = new ArrayList();
yourclazzList.add(4);
к функциям тоже применимо понятие дженериков
Супер уроки! Хотел спросить, после окончания курса, будет ли по андройд обучающие уроки?
Это один из вариантов.
Хорошее видео)
В данном примере кода очень мало, весь он занимает процентов 20% от всего открытого окна идеи на экран. То есть можно было бы увеличить в 5 раз, чтобы на видео был виден только код без пустого места. А так, на небольшом смартфоне сложно вглядываться в эти маленькие строчки кода на краю тёмной пустоты. Пожелание - на будущее увеличивать код (в 5 раз наверное слишком, но в 2-3 раза - вполне хватит).
@learning diary на самом деле, я узнал недавно, что на полноэкранном режиме с приложения TH-cam на смартфоне тоже можно увеличивать - двумя пальцами раздвигаешь по экрану в стороны - и увеличивает. Но это не всегда удобно.
List list = new ArrayList(); получается любой тип ссылочной переменной работает как интерфейс?
Почему он у меня new ArrayList() ругаемся и говорит переписать в new List(). Версии java по-другому сейчас ?
а, можно в один раз сасунуть много обьектов в лист, а не добовлая по одниому?
По идее через запятую
спасибо
generic создан не из за неудобства, а потому что при получении значения были ошибки , потому что не известно какой тип будет на выходе, это важно !!!
хотя бы сюда гляньте www.quizful.net/post/java-generics-tutorial
Лизонька, ты звёздочка!
file-up.net/big/0b/0b2d87b633f9f5c3a520170502115947.jpg
Не могу понять в чём проблема. Помогите
Почему вы пишете код вне метода main?
Даже не знаю как я так пропустил эту скобку. И начал писать код за пределами метода main. Спасибо за ответ.
ты вышел за приделы метода vain и пытаешься что то писать в воздухе
Я что то пропустил? Почему в предыдущих уроках ничего не объясняли про List и ArrayList и сразу начали урок с ними, я даже не понял как их использовать и почему автор видео таким образом создает эти самые списки
Просто на них удобно объяснить параметризацию.
Подробнее о них смотрите в моем курсе Продвинутая Java: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776
Что такое данкаст? Так понял дженерики и арэйлист ничем не отличаются?
предыдущий урок глянь, там про даункасты говорят как раз
Есть инженеры, а есть инженерики)
мне кажется что объясняя тему на массивах сначала надо было обьяснить массивы) первое видео где может возникнуть непонимание( кто не знаком с массивами)
так до этого были уроки про массивы так то
@@Камень-л4ф точно! сам не знаю почему перепутал все) видимо в голове перемешались все курсы просмотренные уже)
@@Артем-о4щ7р как ты быстро ответил!)))
2024 , начал изучать java . list arraylist ругпюается .
Испортил все впечатление... Ну не хранит Arraylist объекты, а только ссылки.. (((
vredina
))
Хоть и прошло 2 года, но напишу для будущих поколений =))) Выражение "ArrayList хранит объекты" означает тоже самое что "ArrayList хранит ссылки на объекты", так что автор видео все правильно говорит. Сам по себе ArrayList не может хранить примитивы
Tyrion Lannister
спасибо, мужик
Tyrion Lannister
так не может хранить не только примитивы, но и не примитивы. он вообще ничего не может хранить, только ссылки на что-то.
Видимо что то поменялось в более поздней версии Java, но все нормально вывелось без и привидения типа:
List animals = new ArrayList();
animals.add("cat");
animals.add("dog");
animals.add("frog");
animals.add("horse");
for (int i = 0; i < animals.size(); i++)
System.out.println(animals.get(i));
______________
cat
dog
frog
horse
у меня тоже выводится также
java version "17.0.2" 2022-01-18 LTS
VSC ругается, но все выполняется
- List is a raw type. References to generic type List should be parameterized
- ArrayList is a raw type. References to generic type ArrayList should be parameterized
в ptintln() автоматом выполняется animal.get(i).toString() [ Хорстманн том 1, с. 225 ]
@@andrewpozdnyak то есть он выводить то выводит, но потом с этим работать не получится и надо все равно делать как показывает автор?
@@Geovald обычно toString() переопределяют чтобы выводились поля класса. Если мы не определили в своем классе метод toString(), то будет вызван метод toString() класса Object, и выведет нам "адрес" на объект.
В общем если туСтринг переопределен, то при использовании дженерика по типу ArrayList arr = new ArrayList();
(где T - параметр типа) мы уверены, что вызывая println(arr.get(i)) выведутся наши поля
@@andrewpozdnyak согласен, спасибо
Странно. У меня, вроде, последняя Java. Но почему-то треугольные скобки не воспринимает. IntelliJDEA 2018 3.2
Error:(30, 47) java: diamond operator is not supported in -source 1.6
(use -source 7 or higher to enable diamond operator)
Спасибо большое за труды!
спасибо