1.2、Set接口
Set接口与List接口差不多,但是有区别,在于:List中数据允许重复元素,保存下来,而Set中不允许有重复元素,删除重复的。主要看两个常用的子类:HashSet和TreeSet.
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 |
范例:ArrayLiast与HashSet的比较
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 |
转载于:https://blog.51cto.com/javalinux/368975