import
java.util.ArrayList;
import
java.util.Collections;
import
java.util.Comparator;
import
java.util.List;
class
VersionComparator
implements
Comparator<String> {
@Override
public
int
compare(String a, String b) {
String[] va = a.split(
"\\."
);
String[] vb = b.split(
"\\."
);
int
minLength = Math.min(va.length, vb.length);
for
(
int
i =
0
; i < minLength; i++) {
int
comparison = va[i].compareTo(vb[i]);
if
(comparison !=
0
) {
return
comparison;
}
}
return
Integer.compare(va.length, vb.length);
}
}
public
class
Main {
public
static
void
main(String[] args) {
List<String> versions =
new
ArrayList<>();
versions.add(
"1.1.0"
);
versions.add(
"1.2.1"
);
versions.add(
"0.9.1"
);
versions.add(
"1.3.4"
);
versions.add(
"1.1.2"
);
versions.add(
"1.1.2.2.3"
);
versions.add(
"9.3"
);
Collections.sort(versions,
new
VersionComparator());
for
(String version : versions) {
System.out.println(version);
}
}
}