LinkedList и ArrayList

  • 2
  • Недоступна
Коллекции могут быть реализованы разными способами и нет единственного – самого правильного. При одном подходе одни операции являются быстрыми, а остальные медленными, при другом – все наоборот. Нет одного идеального, подходящего всем решения. Не будем мучится выбором и создадим сразу два списка — LinkedList и ArrayList.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (64)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
PachkuliaPestrenkiy
Уровень 9, Жуковский
4 апреля 2021, 11:54
4 и 5 пункты, не соответствуют условию задачи. - Если поменять возвращаемые объекты методов "Object" на требуемые по условию: "LinkedList" и "ArrayList" - задача не пройдет тестирование.
Anonymous #2352740
Уровень 10, Казань, Россия
3 января 2021, 17:57
Anonymous #2337929
Уровень 17
10 ноября 2020, 22:16
Я, видимо, что-то пропустила. Все время создаю объекты классическим способом типа ArrayList<..> s = new ArrayList<>(); или Cat cat = new Cat(); а при этом все чаще в задачах встречаю упрощенные способы создания этих объектов - просто через new в циклах или в return. Но как-то упустила, где это началось, с какой лекции? Подскажите, пожалуйста, где-то можно про это подробнее почитать?
Тоник ремонт мобильной техники в FixiT-сервис
9 декабря 2020, 12:34
Ничего ты не пропустила... Об этом нигде не говорилось и не писалось. Я когда классическим методом (как ты) сделал - задача проверку прошла. Открыл (как обычно) ради интереса решение - а там такое. И мысль: "А чё, так можно было? О_о "
Anonymous #2337929
Уровень 17
10 декабря 2020, 18:02
понятно, хорошо)
Людмила
Уровень 20, Харьков, Украина
10 апреля 2021, 22:19
На самом деле об этом шла речь, но не прямо))) И то, что вы назвали классическим и упрощённым способом - немного некорректно)) Объясняю: new ArrayList <>() - это собственно создание объекта - выделение места в памяти и формирование ссылки на него; ArrayList<...> s - это создание переменной s; А вот это: ArrayList<...> s = new ArrayList <>() - создание объекта и вместе с тем присваивание ссылки на него переменной - мы так делаем, что-бы сразу пользоваться объектом. В задаче в методе мы просто создаём список. Если бы нам надо было создать его, что-то с ним сделать и лишь потом вернуть - то да, переменная нужна. А если просто создать и вернуть, то смысла тратить ресурсы на создание переменной нету. Она ведь всё равно "умрёт" после завершения метода
Anonymous #2337929
Уровень 17
13 апреля 2021, 12:24
Да, дальше это становится понятнее :)
Людмила
Уровень 20, Харьков, Украина
13 апреля 2021, 12:27
Это больше был ответ для тех, кто будет читать эти комменты и тоже задастся таким вопросом)))
gypsy potassium
Уровень 12, Урюпинск
27 мая 2021, 15:12
Расскажи пожалуйста, где и зачем на практике применяется создание объекта без переменной или где можно почитать про это?
Людмила
Уровень 20, Харьков, Украина
28 мая 2021, 09:35
Касательно тех же списков пример - заполнение списка объектами:
// с созданием переменной:
ArrayList <Cat> cats = new ArrayList<>();
        Cat cat1 = new Cat();
        cats.add(cat1);

// или вот сразу заполняем объектами:
ArrayList <Cat> cats = new ArrayList<>();
        cats.add(new Cat());
В данном случае нету смысла тратить ресурсы на создание переменной, можно новые объекты сразу вносить в список. Вот ещё наша хорошо известная строчка:
BufferedReader reader = new BufferedReader(new InputStreamReader (System.in));
Её можно расписать и так:
InputStreamReader stream = new InputStreamReader (System.in);
    BufferedReader reader = new BufferedReader(stream);
Записав в одну строку мы снова таки упростили код. Однако если таких "объектов в объектах" будет много, то строка будет километровая и нечитабельная. Поэтому использование переменных может быть полезно для понимания чё вы там вообще написали))) Так что создание переменных - вопрос прежде всего логики программы, ну и читабельности кода;)
max
Уровень 8
31 июля 2020, 11:40
ну тут всё прост: создали, проинициализировали, вернули.
max
Уровень 8
31 июля 2020, 11:42
ах блин.. можно было просто вернуть его..
Андрей
Уровень 12, Москва, Россия
21 мая 2020, 15:42
юху, с 1-ой)
Alexey
Уровень 9, Россия
8 мая 2020, 07:27
достаточно просто. создать в каждом методе по списку из условия. без <> (дженерики?) и не забыть про return.
DS
Уровень 18, Москва, Россия
5 ноября 2020, 11:33
можно и с <> почему без?
Тимур Акматов
Уровень 19, Бишкек, Кыргызстан
27 марта 2021, 17:56
круто! не знал что можно список создать без дженерика
Zuri Bagomaeva
Уровень 19, Россия
23 мая 2021, 19:01
типо без дженерика там автоматически Object и так
Alena
Уровень 31, Halifax, Canada
2 мая 2020, 19:41
too easy...
Павел
Уровень 16
15 апреля 2020, 19:33
В условии задачи сказано: - Нужно создать два списка - LinkedList и ArrayList Подсказка: - Ничего создавать не нужно
Дмитрий
Уровень 14
1 мая 2020, 09:19
Добрый. Какой третий? 3. Программа должна содержать только три метода.
cr00py
Уровень 18
2 мая 2020, 11:46
main
kosatchev
Уровень 13, Тюмень, Россия
14 марта 2020, 09:48
Для решения достаточно просто добавить 2 строчки
return new ArrayList();
...
return new LinkedList();
Vitalik Baliabas
Уровень 12
21 декабря 2019, 16:39
почему нельзя просто написать: ArrayList<> one = new ArrayList<>(); i LinkedList<> two = new LinkedList<>();
foreve_alone
Уровень 41, Одесса
31 декабря 2019, 11:20
В <> надо указывать тип данных которые будет принимать список, если вы про это.
Vitalik Baliabas
Уровень 12
2 января 2020, 21:16
Обезательно ли создавать метод createArrayList() i createLinkedList()? можна ли написать просто: public class Solution { public static void main(String[] args) { ArrayList<String> latter1 = new ArrayList<>(); LinkedList<String> latter2 = new LinkedList<>(); } }
Тоник ремонт мобильной техники в FixiT-сервис
9 декабря 2020, 12:32
Можно, но валидатор не примет XD Ну и по факту методы уже созданы - нужно дописать по одной (или по две - кому как) строчке...