今天重新学习了HashSet课程。发现如果新建一个HashSet对象,添加字符串和数字元素时,不能重复添加;(类似==,不过127以上也不能添加)
添加重复对象时,安装毕老师讲的没有问题,可是如果添加相同的Integer对象则仍然不成功。
总结下: 1 ,100000, "Good luck" , new Integer(10000) ,new String("Good luck")---------不成功
new xx(1) new yy(1,1) ----------成功
书上讲new出来的对象都会分配不同的地址。不同的地址相同的内容,但是哈希值相同,这是什么原理。- import java.util.HashSet;
- import java.util.Iterator;
- class student {
- student (int x){
- this.x=x;
- };
- int x;
- }
- public class AbsDem{
- public static void main(String[] args1) {
- HashSet xx=new HashSet();
- String x=new String("Good luck");
- String y=new String("Good luck");
- xx.add(x);
- xx.add(y);
- xx.add(new student(1));
- xx.add(new student(1));
- System.out.println(x==y);
- Iterator it=xx.iterator();
- while(it.hasNext())
- System.out.println(it.next());
- }
- }
复制代码 |