majiayichuan 2008-09-10 13:36
浏览 103
已采纳

一道j2se问题!关于排序的

import java.util.*;

public class aa {

public static void main(String[] args)  {

    SortedSet set=new TreeSet(new Comparator()
    {

        public int compare(Object o1, Object o2) {
            if(Integer.parseInt(o1.toString())>Integer.parseInt(o2.toString()))
            return 1;
            else
                return
                -1;
        }

    });
  set.add("1");
  set.add("5");
  set.add("3");
  System.out.println(set);
  set.remove("1");//为什么删除不掉呢,请给详细解答!
  System.out.println(set);

}
}

  • 写回答

1条回答 默认 最新

  • congjl2002 2008-09-10 14:09
    关注

    因为你重写了compare方法,所以你判断是否相等用的就是你自己的方法,但是你并没有给出如何才是相等,所以应该加上一个相等时返回0
    如下:
    [code="java"]
    public int compare(Object o1, Object o2) {
    if (Integer.parseInt(o1.toString()) > Integer.parseInt(o2
    .toString()))
    return 1;
    else if (Integer.parseInt(o1.toString()) < Integer.parseInt(o2
    .toString())) {
    return -1;
    } else {
    return 0;
    }
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?