import com.hephec01;
public class HashSetTest{
public static void main(String[] args){
Random rand=new Random();
Set<String> hash=new HashSet<String>();
for(int i=0;i<10000;i++){
hash.add(rand.nextInt(30));
System.out.println(hash);
}
}
}
//HashSet使用的是散列技术
//测试输出数据并没有10000个
import com.hephec02;
public class TreeSetTest{
public static void main(String[] args){
Random rand=new Random();
Set<String> tree=new TreeSet<String>();
for(int i=0;i<10000;i++){
tree.add(rand.nextInt(30));
System.out.println(hash);
}
}
}
//TreeSet将元素存储在红黑树中
//测试输出数据并没有10000个
|
Set(interface) |
存入Set每个元素必须是唯一的,因为Set不保存重复元素,加入Set元素必须重定义equals()方法以此确保对象的唯一性,Set与Collection有完全一样的接口,Set接口不保证维护元素的次序 |
|
HashSet |
为快速查找而设计的Set,存入HashSet的元素必须定义hashCode() |
|
TreeSet |
保持次序的Set,底层为树结构,使用它可以从Set中提取有序的序列,元素必须实现Comparable接口 |
|
LinkedHashSet |
具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)于是在使用迭代器遍历Set时,结果会按照元素的插入次序显示,元素也必须定义hashCode()方法 |

本文深入探讨了Java集合框架中的Set接口及其实现类HashSet、TreeSet和LinkedHashSet的特点与用法。详细介绍了每种集合如何存储数据,以及它们各自的优缺点。
2981

被折叠的 条评论
为什么被折叠?



