6.4 Set接口
6.4.1 Set接口简介
Set接口主要有两个实现类,分别是HashSet和TreeSet。其中HashSet是根据对象的散列值来自确定元素在集合中的存储位置,具有良好的存取和查找性能。HashSet是以二叉树的方式来存储元素,它可以实现对集合中的元素进行排序。
6.4.2 HashSet集合
HashSet是Set接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的。
import java.util.*;
public class Example07{
public static void main(string[] args){
Hashset set=new Hashset();//创建HashSet集合
set.add("张三");
set.add("李四");
set.add("王五");
set.add("李四");//向该Set集合中添加重复元素
Iterator it=set.itereatoy();//获取Iterator对象
while(it.hasNext()){//通过while循环,判断集合中是否有元素
Object obj=it.next();//如果有元素,就通过迭代器的next()方法获取元素
System.out.printLn(obj);
}
}
}
运行结果→
李四
张三
王五
当向集合中存入元素时,为保证HashSet正常工作,要求在存入对象时,重写Object类中的hashCode()和equals()方法。
案例学习 6-8
java.util.*;
class Student{
String id;
String name;
public Student(string id,string name){//创建构造方法
this.id=id;
this.name=name;
}
public string toString(){
return id+":"+name;//重写toString()方法
}
}
public class Example08{
public static void main(String[] args){
HashSet hs=new HashSet();//创建HashSet集合
Student stu1=new Student("1","张三");//创建Student对象
Student stu2 new Student("2","李四");
Student stu3=new Student("2","李四");
hs.add(stul);
hs.add(stu2);
hs.add(stu3);
System.out.println(hs);
}
}
运行结果→
[2:李四,2:李四,1:张三]
6.4.3 TreeSet
案例学习6—11
import java.util.Treeset;
public class Example11{
public static void main(String[] args){
TreeSet ts=new TreeSet();
ts.add(3);
ts.add(1);
ts.add(1);
ts.add(2);
ts.add(3);
System.out.println(ts);
}
}
运行结果→