黑马程序员技术交流社区

标题: Set集合如何保证元素唯一性 [打印本页]

作者: China_Riven    时间: 2015-7-15 18:27
标题: Set集合如何保证元素唯一性
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);
        }

}

作者: 许庭洲    时间: 2015-7-16 13:45
值得学习ing!
作者: yongaidongbing    时间: 2015-7-16 13:51
。。。。。。。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2