JAVA容器Set的三种子类的比较

来源:互联网 发布:时代互联域名转出 编辑:程序博客网 时间:2024/06/07 02:21

Set 概述

1.包含三个具体子类:HashSet、LinkedHashSet、TreeSet(还有一个  AbstractSet的抽象类)2.Set及其子类的实例不能含有重复元素

三个子类的区别

1. HashSet:打印结果与插入顺序无关
import java.util.*public class TestHashSet{    public static void main(String[] args){        //Creat HashSet        Set<String> set = new HashSet<String>();        //Add elements to HashSet        set.add("London");        set.add("Paris");        set.add("New York");        set.add("San Francisco");        set.add("Beijing");        set.add("New York");        System.out.println(set);    }}

Output:

[San Francisco, New York, Paris, Beijing, London]
2. LinkedHashSet:打印结果与插入顺序一致
import java.util.*public class TestHashSet{    public static void main(String[] args){        //Creat HashSet (polymorphism)        Set<String> set = new LinkedHashSet<String>();        //Add elements to HashSet        set.add("London");        set.add("Paris");        set.add("New York");        set.add("San Francisco");        set.add("Beijing");        set.add("New York");        System.out.println(set);    }}

Output:

[London, Paris, New York, San Francisco, Beijing]
3. TreeSet:按升序/降序排列
import java.util.*public class TestHashSet{    public static void main(String[] args){        //Creat HashSet        Set<String> set = new HashSet<String>();        //Add elements to HashSet        set.add("London");        set.add("Paris");        set.add("New York");        set.add("San Francisco");        set.add("Beijing");        set.add("New York");        //construct an instant and sort one time         TreeSet<String> treeSet = new TreeSet<String>(set);        System.out.println(treeSet);    }}

output:

[Beijing, London, New York, Paris, San Francisco]

Reference: 《Introduction to Java Programming》

0 0