set接口排序问题

来源:互联网 发布:linux 挂载sd卡 编辑:程序博客网 时间:2024/05/22 06:25

1.set接口其中两种实现接口的类:

   <1 HashSet在equals方法中只和你返回的true和fals有关,不管写重复还是没有重复,如你返回true,则按重复处理,如你返回false,按没有重复元素的处理;没有重复元素            的时候不会执行equals方法;

   <2TreeSet要实现该功能,在equals方法中进行比较,有三种情况,比较值>0,<0 或者==0,是根据哈希值进行位运算后得出的的数据进行的运算,所以一定要返回按这个格            式进行重写该方法;

          (1)此时有两种方法实现排序

                     1.自定义一个类实现Comparator接口,实现该接口中的compare()方法,该方法返回一个传递进来与原来的比较值,这是一种排序方法;

public class Demo5 {
public static void main(String[] args) {
HashSet set = new HashSet();

        set.add(new Person(1110, "张三"));  // 1110
set.add(new Person(1111, "张四"));
set.add(new Person(1112, "张五"));

        }

]

class Person{
int id;
String name;

        public Person(int id, String name){
this.id = id;
this.name = name;
}

//重写toString,一定要重写toStirng()方法
public String toString(){

return "{身份证号码:" + this.id + ", 姓名是: " + this.name + "}";
}

       public int hashCode(){    //根据hashCode()方法实现按id来看元素是否重复,
//return super.hashCode();
return this.id;

       }

 }

0 0
原创粉丝点击