import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
/*
* Set集合如何保证元素唯一性。
* 使用list时,通过equals方法判断元素是否唯一
* set集合保证唯一性时:
* 先判断hashCode值
* 如果相同:
* 再判断两个元素的equals方法的返回结果。
* true:两元素真相同了,不添加
* false:两元素不相同,添加
* 如果不同:直接就可以判断出两个对象不同,直接添加元素
* 光重写equals方法不行
* 需要同时重写hashCode方法与equals方法
*
* //hashCode就是根据地址算出来的int值。我们通常将这个int值就看做是地址。
//根据属性值,重写hashCode方法
//重写规则:
// 类似int类型的基本数据类型,直接返回这个值本身
// 引用数据类型调用其hashCode方法返回哈希值
// 将所有的判断属性的值相加,即是我们要返回的哈希值
*/
public class Demo2 {
public static void main(String[] args) {
Set set = new HashSet();
set.add(new Light("白炽灯",40));
set.add(new Light("疝气灯",200));
set.add(new Light("霓虹灯",20));
// set.add(new Light("霓虹灯",20));
System.out.println(set);
// 使用list时,通过equals方法判断元素是否唯一
// ArrayList list = new ArrayList();
//
// list.add(new Light("霓虹灯",20));
// list.add(new Light("白炽灯",40));
// list.add(new Light("疝气灯",200));
//
// list.remove(new Light("霓虹灯",20));
//
// System.out.println(list);
}
}
|
|