1)treeSet的底层是treeMap
2)treeSet里有一个内置的比较类,我们可以通过设置比较的内容,来进行特定的排序
3)treeSet默认的排序好像是字典序排序?我自己测的时候,他能够按照字母大小进行排序
如下是字典序排序的
TreeSet treeSet = new TreeSet(new Comparator() { @Override public int compare(Object o1, Object o2) { return ((String) o2).compareTo((String) o1); } });
如下是按字符长度排序的
TreeSet treeSet = new TreeSet(new Comparator() { @Override public int compare(Object o1, Object o2) { return ((String) o1).length() - ((String) o2).length(); } }); treeSet.add("jack"); treeSet.add("ja"); treeSet.add("jack"); treeSet.add("jacka"); treeSet.add("jackaaa"); treeSet.add("hhhh"); for (Object o : treeSet) { System.out.println(o); }
得出的结果为
可以看到,hhhh这一条数据没有插入成功,为什么呢?
因为我们在进行比较的时候,是比较字符串的长度,如果字符串长度相同,那么就默认为这是两个相同的数据,故没有插入成功。
原文:https://www.cnblogs.com/pangbi/p/15203011.html