package com.nriat.test;
import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;
public class StrLengthSortTest {
public static void main(String[] args) {
String[] strArray = {"333","4444","22","666666","1","55555"};
TreeSet<Integer> setLength = new TreeSet<>();
List<String> listString = new ArrayList<>();
// 通过TreeSet把数组中字符串的长度装到集合中,去重+默认排序(正序)
for (String strSingle : strArray) {
int length = strSingle.length();
setLength.add(length);
}
// 实现倒序
TreeSet<Integer> reverseSet = (TreeSet<Integer>) setLength.descendingSet();
// 通过长度对应,实现排序
for (Integer reverseSetLength : reverseSet) {
for (String strSingle : strArray) {
if (strSingle.length() == reverseSetLength) {
listString.add(strSingle);
}
}
}
for (String string : listString) {
System.out.println(string);
}
}
}
结果:
666666
55555
4444
333
22
1