Java里面HashSet集合
importjava.util.*;classR{intcount;publicR(intcount){this.count=count;}publicStringtoS...
import java.util.*;
class R
{
int count;
public R(int count)
{
this.count = count ;
}
public String toString()
{
return "R[count:"+count+"]";
}
public boolean equals(Object obj)
{
if(this == obj)
return true;
if(obj != null && obj.getClass()==R.class)
{
R r = (R)obj;
if(r.count==this.count)
{
return true;
}
}
return false;
}
public int hashCode()
{
return this.count;
}
}
public class HashCodeTest2
{
public static void main(String [] args)
{
HashCode hs = new HashCode();
hs.add(new R(5));
hs.add(new R(-3));
hs.add(new R(9));
hs.add(new R(-2));
//打印HashSet集合,没有重复
System.out.println(hs);
//取出第一个对象
Iterator it = hs.iterator();
R first = (R)it.next();
//为第一个元素的count实例变量赋值
first.count = -3; //①
//再次输出HashSet集合,里面没有重复
System.out.println(hs);
//删除count为-3的R对象
hs.remove(new R(-3)); //②
//可以看到被删除了一个R元素
System.out.println(hs);
}
}
=================================================================
两个问题:
第一,return "R[count:"+count+"]" 这个是什么东西啊,是不是应该这么看:R[count:" 一个字符串 加 count的值 在加 ] 这个字符串。
第二:注释 取出第一个元素 那两行代码,什么说是表达取出第一个元素的意思? 展开
class R
{
int count;
public R(int count)
{
this.count = count ;
}
public String toString()
{
return "R[count:"+count+"]";
}
public boolean equals(Object obj)
{
if(this == obj)
return true;
if(obj != null && obj.getClass()==R.class)
{
R r = (R)obj;
if(r.count==this.count)
{
return true;
}
}
return false;
}
public int hashCode()
{
return this.count;
}
}
public class HashCodeTest2
{
public static void main(String [] args)
{
HashCode hs = new HashCode();
hs.add(new R(5));
hs.add(new R(-3));
hs.add(new R(9));
hs.add(new R(-2));
//打印HashSet集合,没有重复
System.out.println(hs);
//取出第一个对象
Iterator it = hs.iterator();
R first = (R)it.next();
//为第一个元素的count实例变量赋值
first.count = -3; //①
//再次输出HashSet集合,里面没有重复
System.out.println(hs);
//删除count为-3的R对象
hs.remove(new R(-3)); //②
//可以看到被删除了一个R元素
System.out.println(hs);
}
}
=================================================================
两个问题:
第一,return "R[count:"+count+"]" 这个是什么东西啊,是不是应该这么看:R[count:" 一个字符串 加 count的值 在加 ] 这个字符串。
第二:注释 取出第一个元素 那两行代码,什么说是表达取出第一个元素的意思? 展开
2个回答
展开全部
1.是的,toString方法只是看打印出来的效果而已,形式任意,只有输出的字符串能看懂就行。
2.使用的是迭代器操作集合,这个是所有集合都继承了的。it,next()返回游标所指元素,同时游标下移
2.使用的是迭代器操作集合,这个是所有集合都继承了的。it,next()返回游标所指元素,同时游标下移
追问
能详细说明下,什么算出是取第一个元素的?我看的明白各个方法,但是,这两行结合起来,不明白为什么是说取出第一个对象的。
我本来是这么想的:next()方法是返回集合下一个元素,它那里面总的四个元素 不会说是总的四个都迭代一遍了,第四个的下一个就是第一个??这样解释也太搞了吧。。。。
追答
假设集合里有A B C三个元素,用迭代器遍历
object a=it.next(); 获得a
object b=it.next(); 获得b
object c=it.next(); 获得c
it.hasNext();没有元素,返回false
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询