黑马程序员技术交流社区

标题: 关于TreeMap和TreeSet [打印本页]

作者: 赵耿    时间: 2015-3-13 12:20
标题: 关于TreeMap和TreeSet
我想求教大神们,在TreeMap和TreeSet中,如果想取出的字符串元素顺序是其存入的顺序,而不是其本身的自然顺序,怎么实现呢?或者说,它的比较器应该怎么构造呢?
作者: wdhm5423    时间: 2015-3-13 15:52
  1. public class Test {

  2.         public static void main(String[] args) {
  3.                
  4.                 TreeSet ts=new TreeSet(new Comparator() {

  5.                         public int compare(Object o1, Object o2) {
  6.                                 return 1;//1表示后面的比前面大,按传入顺序排序
  7.                         }
  8.                 });
  9.                
  10.                 ts.add("1");
  11.                 ts.add(1);
  12.                 ts.add(false);
  13.                 ts.add("b");
  14.                 ts.add("a");
  15.                 System.out.println(ts);
  16.         }

  17. }
复制代码

作者: 付家辉    时间: 2015-3-13 16:03
TreeMap基于红黑树(Red-Black tree)实现的,该映射根据其键的自然顺序进行排序,创建映射时提供的 Comparator 进行排序,TreeMap(Comparator<? super K> comparator)。TreeSet使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,TreeSet(Comparator<? super E> comparator)  ;TreeSet可以通过Iterator取出值,TreeMap可以根据get(key)取出相对应的值。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2