@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) {
}
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"}, ","));
}