[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-realizuyte-simmetricheskuyu-raznost-dvukh-kollektsiy-ispolzuya-metody-collection":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},503,"realizuyte-simmetricheskuyu-raznost-dvukh-kollektsiy-ispolzuya-metody-collection",12,"collections","Collections","📚","Реализуйте симметрическую разность двух коллекций используя методы Collection","Симметрическая разность — это множество элементов, принадлежащих ровно одной из двух коллекций (но не обеим одновременно). Формула: `(A ∪ B) \\ (A ∩ B)`.\n\n```java\n\u003CT> Collection\u003CT> symmetricDifference(Collection\u003CT> a, Collection\u003CT> b) {\n    \u002F\u002F Объединение: A ∪ B\n    Collection\u003CT> union = new ArrayList\u003C>(a);\n    union.addAll(b);\n\n    \u002F\u002F Пересечение: A ∩ B\n    Collection\u003CT> intersection = new ArrayList\u003C>(a);\n    intersection.retainAll(b);\n\n    \u002F\u002F Симметрическая разность: (A ∪ B) \\ (A ∩ B)\n    union.removeAll(intersection);\n    return union;\n}\n```\n\nАльтернативный подход — через два вычитания:\n\n```java\n\u003CT> Collection\u003CT> symmetricDifference(Collection\u003CT> a, Collection\u003CT> b) {\n    Collection\u003CT> aMinusB = new ArrayList\u003C>(a);\n    aMinusB.removeAll(b); \u002F\u002F Элементы только в A\n\n    Collection\u003CT> bMinusA = new ArrayList\u003C>(b);\n    bMinusA.removeAll(a); \u002F\u002F Элементы только в B\n\n    aMinusB.addAll(bMinusA);\n    return aMinusB;\n}\n```\n\n> **На собеседовании:** покажите, что знаете определение симметрической разности, и реализуйте через addAll + retainAll + removeAll. Альтернативный способ через два removeAll тоже корректен.","","middle",[15,16],"основы","jcf",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":33,"featuredSnippetReady":34},"Симметрическая разность коллекций — addAll, retainAll, removeAll — Gymterview","Формула: (A ∪ B) \\ (A ∩ B). Реализация: addAll (объединение), retainAll (пересечение), removeAll (вычитание). Альтернатива: два removeAll.","Симметрическая разность коллекций — Gymterview","(A∪B)\\(A∩B): addAll + retainAll + removeAll. Или два removeAll + addAll.",[25,26,27,28,29,30,31,32],"симметрическая разность","addAll","retainAll","removeAll","Collection","множества","Java","собеседование","Формула: (A∪B)\\(A∩B). union = new ArrayList(a); union.addAll(b); intersection = new ArrayList(a); intersection.retainAll(b); union.removeAll(intersection). Альтернатива: два removeAll (A\\B + B\\A) + addAll.",true]