import java.util.*;
/**
* @author
*/
public class JavaApplication5 {
public static void main(String[] args) {
SpaßMitListenUndMitArrays smluma = new SpaßMitListenUndMitArrays();
smluma.sortiertEinfuegen(null);
smluma.sortiertEinfuegen(new String[][]{});
smluma.sortiertEinfuegen(new String[][]{{}});
smluma.sortiertEinfuegen(new String[][]{null, {"sehr"}, {"kreativ", "sein"}, {"ist"}, {"das", "nicht", "immer"}, null});
smluma.sortiertEinfuegen(new String[][]{{"hallo"}});
smluma.sortiertEinfuegen(new String[][]{{"lang"}, {"wei"}, {}, {"lig"}});
smluma.llsa.stream().forEach((strings) -> {
System.out.println(Arrays.toString(strings));
});
}
}
class SpaßMitListenUndMitArrays {
LinkedList<String[]> llsa = new LinkedList<>();
void sortiertEinfuegen(String[][] data) {
if (data == null || data.length == 0) {
return;
}
Arrays.sort(data, (String[] o1, String[] o2) -> {
if (o1 == null) {
if (o2 == null) {
return 0;
} else {
return +1;
}
} else if (o2 == null) {
return -1;
} else {
return o2.length - o1.length; // aufpassen
}
});
int i = 0, j = 0;
while (i < data.length) {
if (data[i] == null /* || data[i].length == 0 */) {
return;
}
while (j < llsa.size() && data[i].length <= llsa.get(j).length) {
j++;
}
llsa.add(j, data[i]);
i++;
}
}
}