java吧 关注:1,273,316贴子:12,785,379
  • 13回复贴,共1

Java 每日一题:2016年8月27日

只看楼主收藏回复

每天在这里贴一道 Java 题。
问题不难,有 Java 的基本知识就可以做出来。
问题也不偏,日常工作中时不时会碰到。
每日一题索引页:52.36.153.52:8080/javaquestions/

请问输出结果是什么?


1楼2016-08-27 13:18回复
    源程序:
    package javaquestions;
    import java.util.TreeSet;
    public class JavaQuestion20160827
    {
    public static void main(String[] args)
    {
    Drink coffee = new Drink("Coffee");
    Drink tea = new Drink("Tea");
    TreeSet<Drink> drinks = new TreeSet<Drink>();
    drinks.add(coffee);
    drinks.add(tea);
    System.out.println(drinks);
    }
    }
    class Drink implements Comparable<Drink>
    {
    private String name;
    Drink(String name)
    {
    this.name = name;
    }
    @Override
    public int compareTo(Drink o)
    {
    return 0;
    }
    @Override
    public String toString()
    {
    return name;
    }
    }


    2楼2016-08-27 13:19
    回复
      2025-08-10 00:51:39
      广告
      不感兴趣
      开通SVIP免广告
      重写compare方法时return 0默认输入的都一样,set中不允许重复所以只能存一个drink也就是coffee。不知道是不是这样?


      来自Android客户端3楼2016-08-27 13:45
      回复
        q


        IP属地:江苏来自手机贴吧5楼2016-08-27 13:51
        回复
          传啥都只留第一个


          IP属地:湖北来自Android客户端6楼2016-08-27 15:06
          回复
            Set 是用于存放非重复的元素的。如何判断是否重复(是否相等),不同的 Set 有不同的方法。
            对 HashSet,使用 equals() 方法来判断两个对象是否相等。
            对 TreeSet,使用 Comparable.compareTo() 或者 Comparator.compare() 方法来判断两个对象是否相等。当你使用 TreeSet 时,加入的对象的类需实现 Comparable 接口,或者在创建 TreeSet 时,传入一个 Comparator 实例。
            在上面的程序中,TreeSet 中存放的是 Drink 对象。因为类 Drink 没有覆写 equals() 方法,若用 equals 方法比较的话,所有的 Drink 对象都是不相等的。但因为 compareTo() 方法总是返回 0,若用 compareTo() 方法比较的话,所有的 Drink 对象都是相等的。


            7楼2016-08-27 21:34
            收起回复
              最后的结果是
              [Coffee]
              为什么有括号?


              8楼2016-08-27 23:50
              收起回复
                只知道set中的元素不能重复,compareTo方法是干嘛用的


                IP属地:福建来自iPhone客户端9楼2016-08-28 07:00
                收起回复
                  2025-08-10 00:45:39
                  广告
                  不感兴趣
                  开通SVIP免广告
                  10楼2016-08-29 21:36
                  回复