楼主,饿看了你的问题,饿刚刚自己敲了一下代码--->
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSetDemo2 {
public static void main(String[] args) {
//TreeSet<Integer> tree = new TreeSet<Integer>(); //想看效果去注释,并把下面注释掉
TreeSet<Integer> tree = new TreeSet<Integer>(new MyIntegerComparator());
tree.add(1);
tree.add(3);
tree.add(2);
System.out.println(tree);
}
}
class MyIntegerComparator implements Comparator<Integer>{
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1; //自动拆箱
}
}
弄清楚TreeSet为什么能排序,因为底层的数据结构是二叉树,楼主可以百度下二叉树的排序,那里不一定要转成Integer,直接向相减就可以了,我们使用Integer封装数据之后,调用compare 方法,这样看着更专业,其实跟做减法的效果是一样的,而 int 类型的数据是基本类型,没有 compare 这个方法,楼主应该看下 8 种基本数据类型跟他们的包装类型,还有String 类型,他们的区别,刚学的话弄清楚这些可以少走些弯路、、、
希望可以帮到楼主、、、
The you smile until forever 、、、、、、、、、、、、、、、、、、、、、
|