1.2Set接口

       Set接口与List接口差不多,但是有区别,在于:List中数据允许重复元素,保存下来,而Set中不允许有重复元素,删除重复的。主要看两个常用的子类:HashSetTreeSet.
HashSet
       从名字上就可以看出,Hash表示散列的意思,就是说,此类存放的对象数据是散列存放的,那里有地方那里存放。ArrayList则是有序存放的,此时两者区别。
范例:使用HashSet
import java.util.HashSet; <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

import java.util.Iterator;

import java.util.Set;

public class CollectionDemo04 {

    public static void main(String[] args) {

       // 准备一个对象数组容器

       Set<String> all = new HashSet<String>();

       // 加入元素

       all.add( "AUST" );

       all.add( "Hello" );

       all.add( "D" );

       all.add( "JAVA" );

       // 打印元素

       Iterator<String> iter = all.iterator();

       while (iter.hasNext()){

           Object obj = iter.next();

           System. out .print(obj + "  " );

       }

    }

}

运行结果:

D  AUST  JAVA  Hello 
范例:ArrayLiastHashSet的比较
import java.util.ArrayList;

import java.util.HashSet;

import java.util.Iterator;

import java.util.List;

import java.util.Set;

public class CollectionDemo05 {

    public static void main(String[] args) {

       // 准备一个对象数组容器

       Set<String> all = new HashSet<String>();

       // 加入元素

       all.add( "AUST" );

       all.add( "Hello" );

       all.add( "D" );

       all.add( "D" );

       all.add( "D" );

       all.add( "JAVA" );

       // 打印元素

       Iterator<String> iter = all.iterator();

       while (iter.hasNext()){

           Object obj = iter.next();

           System. out .print(obj + "  " );

       }

       System. out .println( "\n**************************************" );

       // 准备一个对象数组容器

       List<String> list = new ArrayList<String>();

       // 加入元素

       list.add( "AUST" );

       list.add( "Hello" );

       list.add( "D" );

       list.add( "D" );

       list.add( "D" );

       list.add( "JAVA" );

       // 打印元素

       Iterator<String> ite = list.iterator();

       while (ite.hasNext()){

           Object obj = ite.next();

           System. out .print(obj + "  " );

       }

    }

}

运行结果:

D  AUST  JAVA  Hello 

**************************************

AUST  Hello  D  D  D  JAVA 
       TreeSet也是Set的一个子类,与HashSet的区别在于他是有序的存放,按照Comparable接口实现排序的。
范例:使用TreeSet存放对象数据
import java.util.Iterator;

import java.util.Set;

import java.util.TreeSet;

public class CollectionDemo06 {

    public static void main(String[] args) {

       // 准备一个对象数组容器

       Set<String> all = new TreeSet<String>();

       // 加入元素

       all.add( "EE" );

       all.add( "HH" );

       all.add( "DD" );

       all.add( "AA" );

       // 打印元素

       Iterator<String> iter = all.iterator();

       while (iter.hasNext()){

           Object obj = iter.next();

           System. out .print(obj + "  " );

       }

    }

}

运行结果:

AA  DD  EE  HH