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