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