Set存值特点?

db_cwade 2009-04-07 06:21:04
int[] num = { 3, 3, 3, 3, 2, 4, 5, 5, 5, 5, 6 };
Integer[] num2;
Set<Integer> set=new HashSet<Integer>();
for(int i:num){
set.add(i);
}
num2=(Integer[])set.toArray(new Integer[0]);
for(int i=0;i<num2.length;i++)
System.out.print(num2[i]);


运行结果为:2,4,6,3,5
set的存值规则是什么?
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunhua1984 2009-04-07
  • 打赏
  • 举报
回复
1、set内的元素都是唯一的,这个唯一取决于元素对象的equals方法;
2、set内的元素顺序是固定的,其顺序取决于元素对象的hashcode方法;
j1223jesus 2009-04-07
  • 打赏
  • 举报
回复
只知道是不重复的。。。
不知道lz知不知道,HashSet <Integer>这种是泛型,提一下
ty_tarena_pger 2009-04-07
  • 打赏
  • 举报
回复
同志们说的都很对,我再补充下:就你那个例子里HashSet <Integer>而言,它判定它要add值是否相等的标准是equals()
和hashCode(当然这现个方法Integer里都自己实现了,不要自己重写了,但是如果把Integer替换成你自己定义的类,
那么一定要记得在那个类里重写equqls()和hashCode()啊)
ty_tarena_pger 2009-04-07
  • 打赏
  • 举报
回复
同志们说的都很对,我再补充下:就你那个例子里HashSet<Integer>而言,它判定它要add值的标准是equals()
和hashCode(当然这现个方法Integer里都自己实现了,不要自己重写了,但是如果把Integer替换成你自己定义的类,
那么一定要记得在那个类里重写equqls()和hashCode()啊)
沉沦 2009-04-07
  • 打赏
  • 举报
回复
Set中的elements不能重复,顺序是不确定的.
想有顺序就放到List里~
dreamhunter_lan 2009-04-07
  • 打赏
  • 举报
回复
Set中的elements不能重复,顺序是不确定的.
看API文档好像比较仔细吧?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧