TreeSet随笔

使用TreeSet的目的是要获得一个元素唯一并且排序过的元素集合. 默认排序为升序排列 数字-->大写字母-->小写字母

通过两种方式让元素比较排序.

一. 元素实现Comparable接口

二. 向TreeSet构造函数传入一个实现了Comparator的对象

注意事项:

1. 当向TreeSet中添加元素时 如果Comparable.compareTo(T t)或Comparator.compare(T t)返回值为0时, 该元素被认为是重复元素并且不会被添加成功.

  TreeSet由TreeMap实现, TreeSet中的元素即为TreeMap的Key, 当向TreeMap添加元素时, 如果Comparable.compareTo()或Comparator.compare()返回值=0, Key值保持不变 替换Value值

2. 添加的元素不能既有Integer类型(int型会自动包装成Integer类型) 又有Charactor 或者String 或者Long 等等, 否则会抛出ClassCastException.

  不同基本类型封装类Overwrite方法compareTo(T t)参数不同, 导致了如果比较Integer与Long, 则需将Integer转型为Long型, 由于Integer并非Long的子类 故抛出ClassCastException.

 

 

posted @ 2012-12-17 12:27  D.Wang  阅读(171)  评论(0编辑  收藏  举报