标题:[求助]HashSet的问题
只看楼主
fqj793
Rank: 1
等 级:新手上路
威 望:2
帖 子:228
专家分:0
注 册:2006-12-9
 问题点数:0 回复次数:4 
[求助]HashSet的问题

import java.util.*;
class HashSetTest
{
public static void main(String[] args)
{
HashSet hs=new HashSet();
/*hs.add("one");
hs.add("two");
hs.add("three");
hs.add("one");*/
hs.add(new Student(1,"zhangsan"));
hs.add(new Student(2,"lisi"));
hs.add(new Student(3,"wangwu"));
hs.add(new Student(1,"zhangsan"));

Iterator it=hs.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}

class Student
{
int num;
String name;
Student(int num,String name)
{
this.num=num;
this.name=name;
}
public int hashCode()
{
return num*name.hashCode();
}
public boolean equals(Object o)
{
Student s=(Student)o;
return num==s.num && name.equals(s.name);
}
public String toString()
{
return num+":"+name;
}
}
其中红色部分不知为什么要这样写,而不是return num=s.name.equals(s.name);
而且上面这段代码也在编译时出现错误.信息如下:


搜索更多相关主题的帖子: HashSet 
2007-03-21 16:55
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
JDK1.5以后加了泛型 ,你没有加,就会有警告

像你要在里面加入Student,可以这样声明

HashSet<Student> hs=new HashSet<Student>();

这样就只能往里面加Student了,并且你取出来的时候,也不用cast了,直接取就是Student对象

可惜不是你,陪我到最后
2007-03-21 17:14
fqj793
Rank: 1
等 级:新手上路
威 望:2
帖 子:228
专家分:0
注 册:2006-12-9
得分:0 
谢谢千里,按你说的,已经解决了

知识改变命运!!!
2007-03-21 17:22
黄袖标
Rank: 4
等 级:贵宾
威 望:13
帖 子:676
专家分:0
注 册:2007-3-22
得分:0 
建议楼主练练抓图。。。

我胡汉三又回来啦!物是人非啊,只有静夜思大大还在。
2007-03-22 14:06
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
建议楼上在技术区少灌点水


可惜不是你,陪我到最后
2007-03-22 14:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-125625-1-1.html




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

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