A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© China_Riven 中级黑马   /  2015-7-15 18:27  /  1371 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
        }

}

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
。。。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马