[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-kakie-sushchestvuyut-sposoby-perebirat-elementy-spiska":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":17,"progress":18,"seo":19},498,"kakie-sushchestvuyut-sposoby-perebirat-elementy-spiska",12,"collections","Collections","📚","Какие существуют способы перебирать элементы списка","Существуют четыре основных способа перебора элементов List.\n\nЦикл for-each (рекомендуемый):\n```java\nfor (String element : list) {\n    \u002F\u002F element\n}\n```\n\nИтератор:\n```java\nIterator\u003CString> it = list.iterator();\nwhile (it.hasNext()) {\n    String s = it.next();\n}\n```\n\nИндексный цикл for (только для RandomAccess-списков):\n```java\nfor (int i = 0; i \u003C list.size(); i++) {\n    list.get(i);\n}\n```\n\nforEach с лямбдой (Java 8+):\n```java\nlist.forEach(element -> System.out.println(element));\n```\n\nИндексный цикл эффективен для `ArrayList` (RandomAccess), но для `LinkedList` приведет к O(N^2), т.к. каждый `get(i)` — это O(N). Для LinkedList следует использовать итератор или for-each.\n\n> **На собеседовании:** перечислите все четыре способа. Обязательно упомяните, что индексный цикл опасен для LinkedList (O(N^2) vs O(N) у итератора).","","junior",[15,16],"основы","jcf",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":34,"featuredSnippetReady":35},"4 способа перебора элементов List в Java — Gymterview","for-each, Iterator, индексный for, forEach с лямбдой. Индексный for опасен для LinkedList — O(N^2). Для LinkedList — итератор или for-each.","Способы перебора List — Gymterview","for-each, Iterator, индексный for, forEach(lambda). Индексный for + LinkedList = O(N^2).",[25,26,27,28,29,30,31,32,33],"List","итерация","for-each","Iterator","forEach","лямбда","RandomAccess","Java","собеседование","4 способа: for-each (рекомендуемый), Iterator (для удаления), индексный for (только RandomAccess-списки), forEach с лямбдой (Java 8+). Индексный for для LinkedList — O(N^2), т.к. каждый get(i) обходит список.",true]