fixes from review (joining one-element collection optimization IDEA-COMMUNITY-CR...
authorSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 27 Feb 2015 15:57:11 +0000 (18:57 +0300)
committerSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 27 Feb 2015 15:57:11 +0000 (18:57 +0300)
platform/util/src/com/intellij/openapi/util/text/StringUtil.java
platform/util/testSrc/com/intellij/util/text/StringUtilTest.java

index 56d811273557a7240e2b20a81bebcd8c7de8f58c..183b4678b7bd5a34618fa6883a0cfa99fda061b6 100644 (file)
@@ -1455,20 +1455,16 @@ public class StringUtil extends StringUtilRt {
 
   @NotNull
   @Contract(pure = true)
-  public static String join(@NotNull Collection<? extends String> strings, @NotNull String separator) {
-    int size = strings.size();
-    if (size == 0) {
-      return "";
-    }
-    if (size == 1) {
-      return String.valueOf(strings.iterator().next());
+  public static String join(@NotNull Collection<String> strings, @NotNull String separator) {
+    if (strings.size() <= 1) {
+      return notNullize(ContainerUtil.getFirstItem(strings));
     }
     StringBuilder result = new StringBuilder();
     join(strings, separator, result);
     return result.toString();
   }
 
-  public static void join(@NotNull Collection<? extends String> strings, @NotNull String separator, @NotNull StringBuilder result) {
+  public static void join(@NotNull Collection<String> strings, @NotNull String separator, @NotNull StringBuilder result) {
     boolean isFirst = true;
     for (String string : strings) {
       if (string != null) {
index 2e825f504e9d9d41e055b51e397afbdf10468827..59ee8a8280e7346f57bca8112b5492adb7df7836 100644 (file)
@@ -219,9 +219,10 @@ public class StringUtilTest extends TestCase {
   }
 
   public void testJoin() {
-    assertEquals("", StringUtil.join(Collections.emptyList(), ","));
+    assertEquals("", StringUtil.join(Collections.<String>emptyList(), ","));
     assertEquals("qqq", StringUtil.join(Collections.singletonList("qqq"), ","));
-    assertEquals("null", StringUtil.join(Collections.singletonList(null), ","));
+    assertEquals("", StringUtil.join(Collections.<String>singletonList(null), ","));
+    assertEquals("a,b", StringUtil.join(Arrays.asList("a", "b"), ","));
     assertEquals("foo,,bar", StringUtil.join(Arrays.asList("foo", "", "bar"), ","));
     assertEquals("foo,,bar", StringUtil.join(new String[]{"foo", "", "bar"}, ","));
   }