/**
* set:存储的元素是无序的。不可重复。主要实现类HashSet()
* 1.无序:不是随机性,指的是元素在底层存储的时候是无序的
* 2.不可重复:在set添加相同元素是,后面的添加不进去。不是把前面的覆盖了
*
* 当向set存元素的时候,首先调用该类的hashCode()方法计算该对象的hash值,这个hash值就代表该对象的位置
* 如果该对象之前没有对象存储,那么就把该对象存到该位置
* 如果此位置已经有了对象,调用equals方法,判断两个对象的值是否相等,如果相等,不能添加进来
*
*/
Set set=new HashSet();
set.add(123);
set.add("aaa");
set.add("bbb");
set.add(123);
set.add(new Student("张三"));
set.add(new Student("张三"));
set.add(new String("李四"));
set.add(new String("李四"));
System.out.println(set);
System.out.println(set.hashCode());
//foreach
for(Object s:set){
System.out.println(s);
}
System.out.println("===============================");
//迭代
Iterator s=set.iterator();
while(s.hasNext()){
System.out.println(s.next());
}
}
}
class Student{
String name;
public Student(String name) {
super();
this.name = name;
}
}
[aaa, 李四, bbb, com.htp.java.Student@15db9742, com.htp.java.Student@6d06d69c, 123]
-2098054135
aaa
李四
bbb
com.htp.java.Student@15db9742
com.htp.java.Student@6d06d69c
123
aaa
李四
bbb
com.htp.java.Student@15db9742
com.htp.java.Student@6d06d69c
123