1,定義
set接口及其實(shí)現(xiàn)類–HashSet
Set是元素?zé)o序且不可重復(fù)的集合,被稱為集。
HashSet是哈希集,是Set的一個(gè)重要實(shí)現(xiàn)類
set中循環(huán)只能使用foreach和iterator這兩個(gè),而沒有g(shù)et()方法
set中無論添加某個(gè)對(duì)象多少次,最終只會(huì)保留一個(gè)該對(duì)象 的引用,并且保留的是第一次添加的那個(gè)。
set中add()、addAll()、remove()、removeAll()方法和List中使用方法一樣
2,實(shí)現(xiàn)類?
HashSet()?
特點(diǎn):?
不能保證元素的排列順序,順序有可能發(fā)生變化。
另外HashSet不是同步的,如果多個(gè)線程同時(shí)訪問一個(gè)Set,只要有一個(gè)線程修改Set中的值,就必須進(jìn)行同步處理,通常通過同步封裝這個(gè)Set的對(duì)象來完成同步,如果不存在這樣的對(duì)象,可以使用Collections.synchronizedSet()方法完成。?
Set s = Collections.synchronizedSet(new HashSet(…));
元素值可以是null。
3,遍歷
//1.迭代遍歷:Set set =new HashSet();
Iterator it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
//2.for循環(huán)遍歷:
for (String str : set) {
System.out.println(str);
}
注意:在對(duì)set集合成進(jìn)行遍歷的時(shí)候不能同時(shí)進(jìn)行修改操作,比如刪除,這樣會(huì)導(dǎo)致崩潰。