== 和equals()
== 它的作用是判断两个对象的地址是不是相等,即判断两个对象是不是同一个对象
基本数据类型比较的是值,引用数据类型比较的是地址
equals() 是判断两个对象是否相等,如果没有重写equals() 方法,就和两个等号的意思是一样的
为什么要有hashcode?
为了减少equals()的比较次数,只要当hashcode相同的时候才会进行equals()的比较,极大提高了效率
为什么重写了equals()后就要重写hashcode方法
如果不重写hashcode方法的话,两个对象进行比较的时候就会调用object类的hashcode方法来计算hashcode,而object类的hashcode方法是通过内存地址来计算hashcode的,就可能会导致该class的两个对象无论如何都不会相等的
java对象的四种比较方式
== equals compareTo compare
如何保证元素唯一性?
根据比较元素的返回值是否为0来决定
向TreeSet中添加的数据,要求是相同类的对象
两种排序方式:自然排序(实现Comparable接口)
添加的类实现comparable接口,重写comparaTo()方法
和定制排序comparator
Comparator com = new Comparator(){
//重写compara方法
}
自然排序中,比较两个对象是否相等的标准是