黑马程序员技术交流社区
标题:
关于Set集合
[打印本页]
作者:
剑魂
时间:
2013-11-18 00:46
标题:
关于Set集合
Set集合中的元素是不能重复的,那什么方法区分,是==还是equals?
作者:
qw无语
时间:
2013-11-18 01:19
如果不是对象应该使用的是 字符串的方法int compareTo(String anotherString)
Integer的方法 int compareTo(Integer anotherInteger) 在数字上比较两个 Integer 对象。
查阅了下API 都有compareTo方法
如果是自己写的类,就需要复写这个方法才能比较
元素需要实现Comparable接口,覆盖compareTo方法
public int compareTo(Object obj)
{
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象");
Student s = (Student)obj;
if(this.age>s.age)
return 1;
if(this.age==s.age)
{
return this.name.compareTo(s.name);
}
return -1;
}
上面是一个例子,先比较年龄,再比较字符串,这样就可能用自己想要的方式去比较了
作者:
松毛
时间:
2013-11-18 08:32
Set集合中有两个子类HashSet和TreeSet;
HashSet保证元素唯一性是通过元素的两个方法hashCode和equals来完成的,如果元素的hashCode值相同才会判断equals是否为true,如果元素的hashCode值不同,则不会调用equals方法。
TreeSet保证元素唯一性的依据是compareTo方法return 0.
作者:
┾——黑马
时间:
2013-11-18 08:57
Set有HashSet和TreeSet子类;
HashSet保证元素唯一性是通过元素的两个方法hashCode和equals来判断的,如果元素的hashCode值相同才会判断equals是否为true,如果元素的hashCode值不同,则不会调用equals方法。
TreeSet保证元素唯一性的是通过实现CompareTo接口实现Compare方法或者传入自定义的比较器Comparable.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2