1. 集合类总纲2. HashSet 的使用
2.1 HashSet 构造与增加元素2.2 遍历 HashSet 集合中的元素2.3 删除 HashSet 中的元素2.4 判断是否包含某个元素 contains(Object) 3. HashSet集合类不能有重复元素的实例
3.1 加入了重复对象3.2 要重写 equals() 和 hashCode() 方法
1. 集合类总纲 2. HashSet 的使用 2.1 HashSet 构造与增加元素集合中元素的储存空间是自动开辟的。集合中元素是根据元素值和相应的哈希算法计算其地址,元素值相同,则地址相同。所以 HashSet中不存在元素值重复的元素。比如,HashSet 的存储就像夜晚的星星一样排列,无先后顺序。
HashSet hashset = new HashSet();
hashset.add("a");
hashset.add("a"); // 无法添加,因为元素不能重复
hashset.add(new Integer(1));
int[] a = {1, 2, 3, 4};
hashset.add(a);
MyHashSet mh = new MyHashSet();
hashset.add(mh);
2.2 遍历 HashSet 集合中的元素
集合中元素是依据元素值和相应的哈希算法计算其地址。遍历集合,需要遍历算法(即使用迭代器)。Iterator
public static void practice1() {
HashSet hashset = new HashSet();
hashset.add(100);
hashset.add(55);
hashset.add(25);
hashset.add(10);
hashset.add(5);
Iterator it = hashset.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
}
100 5 55 25 102.3 删除 HashSet 中的元素
删除一个元素:
hashset.remove(Object);
删除所有元素:
hashset.clear();2.4 判断是否包含某个元素 contains(Object)
@SuppressWarnings("removal")
public static void practice2() {
HashSet
集合中包含I love java3. HashSet集合类不能有重复元素的实例 3.1 加入了重复对象
package javaweb.collection;
import java.util.HashSet;
import java.util.Iterator;
public class Student {
String id, name;
int age;
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public String toString() {
return id + " " + name + " " + age;
}
public static void main(String[] args) {
HashSet hashset = new HashSet();
Student student1 = new Student("1001", "chen", 18);
Student student2 = new Student("1001", "chen", 18);
hashset.add(student1);
hashset.add(student2);
Iterator it = hashset.iterator();
while(it.hasNext()) {
System.out.println(it.next() + " ");
}
}
}
1001 chen 18 1001 chen 183.2 要重写 equals() 和 hashCode() 方法
这下就只增加得了一个对象
package javaweb.collection;
import java.util.HashSet;
import java.util.Iterator;
public class Student {
String id, name;
int age;
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return id + " " + name + " " + age;
}
@Override
public boolean equals(Object obj) {
return id.equals(((Student) obj).id);
}
@Override
public int hashCode() {
return Integer.valueOf(id);
}
public static void main(String[] args) {
HashSet hashset = new HashSet();
Student student1 = new Student("1001", "chen", 18);
Student student2 = new Student("1001", "chen", 18);
hashset.add(student1);
hashset.add(student2);
Iterator it = hashset.iterator();
while (it.hasNext()) {
System.out.println(it.next() + " ");
}
}
}
1001 chen 18



