一、 TreeSet 可以排序不重复的元素(把重复元素删除了,再排序)
ArrayList<String> list = new ArrayList<>();
list.add("ccc");
list.add("ccc");
list.add("aaa");
list.add("aaa");
list.add("bbb");
list.add("ddd");
list.add("ddd");
TreeSet<String> treeSet = new TreeSet<>();
treeSet.addAll(list);
System.out.println(treeSet);
二、TreeSet 不删除重复元素排序 (技巧)
// 使用lambada表达式
TreeSet<String> stringTreeSet = new TreeSet<>((s1, s2) -> {
int num = s1.compareTo(s2);
return num == 0 ? 1 : num;
});
// 或者
TreeSet<String> stringTreeSet1 = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
int num = s1.compareTo(s2);
return num == 0 ? 1 : num;
}
});
三、案例 : helloitcast程序打印:acehillostt
String string = "helloitcast";
// 分割成数组
String[] strings = string.split("");
// 数组转化集合
List<String> list1 = Arrays.asList(strings);
// 使用lambada表达式
TreeSet<String> stringTreeSet = new TreeSet<>((s1, s2) -> {
int num = s1.compareTo(s2);
return num == 0 ? 1 : num;
});
// 集合排序,不会删除重复元素
stringTreeSet.addAll(list1);
// 转化成字符串
String join = String.join("", stringTreeSet);
System.out.println(join);
参考网址: http://yanhui.site/2017/08/01/Java%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%86%EF%BC%8817%EF%BC%89/
网友评论