ContainerUtil.unmodifiableOrEmpty* methods optimized for 1-element collections

This commit is contained in:
Anton Makeev
2018-09-03 13:43:07 +02:00
parent 061c9e14f2
commit e66890a6d2
@@ -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<? extends K, ? extends V> entry = original.entrySet().iterator().next();
return Collections.singletonMap(entry.getKey(), entry.getValue());
}
else {
return Collections.unmodifiableMap(original);
}