本帖最后由 焚雨成灰 于 2014-4-27 22:34 编辑
- import java.util.Comparator;
- import java.util.Iterator;
- import java.util.Set;
- import java.util.TreeSet;
- /*
- * 需求:用TreeSet将这个数组的重复元素去掉{ 8, 9, 8, 7, 6, 6, 4, 4, 3, 8 },并且顺序不能乱
- * 我使用了比较器MyComp,如果是重复元素就不存,不是重复元素就存进去,集合内所有元素的顺序是存储顺序
- */
- public class TreeDemo {
- public static void main(String[] args) {
- Integer[] array = { 8, 9, 8, 7, 6, 6, 4, 4, 3, 8 };
- Set<Integer> ts = new TreeSet<Integer>(new MyComp());
- for (Integer i : array) {
- ts.add(i);
- }
- StringBuilder sb = new StringBuilder("[ ");
- Iterator<Integer> it = ts.iterator();
- while (it.hasNext()) {
- sb.append(it.next() + ", ");
- }
- sb.replace(sb.length() - 2, sb.length() - 1, " ]");
- System.out.println(sb.toString());
- /*
- * 结果为[ 8, 9, 7, 6, 4, 3, 8 ] 还有一个重复的
- */
- }
- }
- class MyComp implements Comparator<Integer> {
- @Override
- public int compare(Integer o1, Integer o2) {
- int num = o1.compareTo(o2);
- /* 如果不想等就返回1,表示按存放顺序排序 */
- if (num != 0)
- return 1;
- return 0;
- }
- }
复制代码
|
|