diff --git a/platform/util/src/com/intellij/util/containers/ContainerUtil.java b/platform/util/src/com/intellij/util/containers/ContainerUtil.java index cf769c324380..c10a9426670f 100644 --- a/platform/util/src/com/intellij/util/containers/ContainerUtil.java +++ b/platform/util/src/com/intellij/util/containers/ContainerUtil.java @@ -212,6 +212,9 @@ public class ContainerUtil extends ContainerUtilRt { if (size == 0) { return emptyList(); } + if (size == 1) { + return Collections.singletonList(original.iterator().next()); + } else { return Collections.unmodifiableCollection(original); } @@ -224,6 +227,9 @@ public class ContainerUtil extends ContainerUtilRt { if (size == 0) { return emptyList(); } + if (size == 1) { + return Collections.singletonList(original.iterator().next()); + } else { return Collections.unmodifiableList(original); } @@ -236,6 +242,9 @@ public class ContainerUtil extends ContainerUtilRt { if (size == 0) { return Collections.emptySet(); } + if (size == 1) { + return Collections.singleton(original.iterator().next()); + } else { return Collections.unmodifiableSet(original); } @@ -248,6 +257,10 @@ public class ContainerUtil extends ContainerUtilRt { if (size == 0) { return Collections.emptyMap(); } + if (size == 1) { + Map.Entry entry = original.entrySet().iterator().next(); + return Collections.singletonMap(entry.getKey(), entry.getValue()); + } else { return Collections.unmodifiableMap(original); }