| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 668 人关注过本帖
标题:创建hashSet对象为什么会自动调用他的普通方法
只看楼主 加入收藏
小白编程
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-6-5
结帖率:100%
收藏
 问题点数:0 回复次数:3 
创建hashSet对象为什么会自动调用他的普通方法
import java.util.*;
public class HashSetText {

    public static void main(String [] args)
    {
        HashSet hs = new HashSet();
        hs.add(new Person("a1", 11));  →→ 为什么创建一个对象会自动调用类中的普通方法、创建对象调用其构造方法能理解,能自动调用普通
        hs.add(new Person("a2", 12));            就不能理解了
        hs.add(new Person("a3", 13));
        hs.add(new Person("a2", 12));
        Iterator a = hs.iterator();
        while(a.hasNext())
        {
            System.out.println(a.next());
        }
    }   
}
class Person
{
    private String name;
    private int age;
    public Person(String name, int age)
    {
        this.name = name;
        this.age = age;
    }

    public int hashCode()//重写了hascode 和  equals 方法;
    {
        System.out.println(this.name + "..>><<...hasCode");
        return 100;  
    }
    public boolean equals(Object obj)
    {
        if(!(obj instanceof Person))  
        {
            return false;   
        }
        Person p = (Person) obj;
        System.out.println(this.name +"..equals..."+ p.name);
        
        return this.name.equals(p.name) && this.age == (p.age);
    }
   
}
搜索更多相关主题的帖子: import public 
2015-07-10 07:54
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
收藏
得分:0 
你是指自动调用了hashCode和equals方法么
hashset中不允许出现重复对象,添加元素的时候要防重
首先会调用hashCode方法,看是否重复,如果不相等则表示不重复,将元素添加进去
如果相等,则调用equals方法判断是否相等,如果equals的结果不相等,则表示不重复,将元素添加进去
否则表示元素已存在,不会添加进集合
2015-07-10 09:11
小白编程
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-6-5
收藏
得分:0 
回复 2楼 calix
谢谢! 听视频讲的是重写的hashCode 和Compare方法
2015-07-10 20:54
小白编程
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-6-5
收藏
得分:0 
回复 3楼 小白编程
equals 看视频看窜了。。。compare好像是treeSet方法
2015-07-10 20:55
快速回复:创建hashSet对象为什么会自动调用他的普通方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019536 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved