how2j.cn


步骤 1 :

增加元素到Set中的时候,如何判断是否重复

edit
根据hashcode原理,往HashSet里增加元素,其本质就是把元素作为key添加到HashMap上。
所以,判断增加的元素是否重复,就是判断key是否重复
1. 如果hashcode 不一样,一定不重复
2. 如果hashcode 一样, 再使用equals进行比较。
倘若equals也一样,则重复
倘若equals不一样,则不重复
参考分析HashMap的性能
运行效果
增加元素到Set中的时候,如何判断是否重复
package collection; import java.util.HashSet; public class TestCollection { public static void main(String[] args) { HashSet<String> names = new HashSet<String>(); //gareen 对应的hashcode是1001 (其实不是,为了便于理解,假设是1001) //HashSet内部是HashMap,所以是本质上是map.put("gareen",PRESENT); //map是空的,所以一定加的进去 names.add("gareen"); //temoo的hashcode是1004, 1004这个位置,没有元素,顺利加入 names.add("temoo"); //db的hashcode是1008, 1008这个位置,没有元素,顺利加入 names.add("db"); //annie的hashcode是1008, 1008这个位置有db了 //把annie和db进行equals比较,不一样,即不重复,也可以加进去 names.add("annie"); //gareen 对应的hashcode是1001,1001这个位置以及有元素,并且key也是 "gareen" //equals也一样,即代表重复,所以"gareen"再加入,就加不进去了 names.add("gareen"); } }




HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢