java集合和泛型

# 集合存儲結(jié)構(gòu)

**集合和數(shù)組的區(qū)別**

**1. 數(shù)組能容納基本數(shù)據(jù)類型和引用數(shù)據(jù)類型健无;集合只接收引用數(shù)據(jù)類型碗脊。

2. 數(shù)組的長度是固定的障本》懵玻【集合長度可變的咆槽∈詹粒】

3. 數(shù)組可進(jìn)行的操作很有限:

4.? 集合是對象哆键,有方法和屬性可供調(diào)用苞轿,功能豐富了嗜傅;面向?qū)ο蟮奶匦越鹁洌庋b,繼承吕嘀,多態(tài)违寞。**

## 1.Collection接口

Collection接口中的方法

add(Objectionn o)添加一個(gè)元素

size()? 元素的個(gè)數(shù)

addAll(Collection<? extends E> c)? 添加一個(gè)集合對象的元素

contains(Object o)? 是否包含該"o"元素

isEmpty()? ? 是否為空

iterator()? ? 迭代

remove(Object o)? 刪除對象

toArray()? 返回?cái)?shù)組

## 2. List接口

List集合中的元素都是有序可重復(fù)的集合

List接口中的方法

void add(int index, Object ele)? ? ? ? ? ? //指定下標(biāo)添加元素

boolean addAll(int index, Collection eles) //指定下標(biāo)添加集合

Object get(int index)? ? ? ? ? ? ? ? ? ? ? //獲取下標(biāo)的元素

int indexOf(Object obj)? ? ? ? ? ? ? ? ? ? //從左到右獲取元素的下標(biāo)

int lastIndexOf(Object obj)? ? ? ? ? ? ? ? //從右到左獲取元素的下標(biāo)(永遠(yuǎn)從0開始的)

Object remove(int index)? ? ? ? ? ? ? ? ? //通過下標(biāo)刪除

Object set(int index, Object ele)? ? ? ? ? //修改下標(biāo)的元素

List subList(int fromIndex, int toIndex)? //返回一個(gè)子集合(不包含toIndex下標(biāo))

**2.1、ArrayList**

有序偶房,不唯一趁曼;有序是索引順序;

*(1)遍歷時(shí)按添加順序棕洋;

*(2)內(nèi)存原理:內(nèi)存中分配的是連續(xù)的空間挡闰;有索引,

*? ? ? ? ? ArrayList是一個(gè)Object類型的數(shù)組掰盘;數(shù)組長度不夠了摄悯,會(huì)生成更長的新數(shù)組;

*(3)性能:按索引查詢愧捕,效率高奢驯;

*? ? ? ? ? 按內(nèi)容查詢,效率低次绘;

*? ? ? ? ? 添加刪除元素效率低叨橱;可能引起大量元素的位移典蜕;

/*

*ArrayList的遍歷方法:

*1.for-each;

*2.普通for循環(huán);操作索引;

*3.迭代器:

*? 1)生成迭代器:Iterator it=list.iterator();//it初始位置在索引為0的元素之前罗洗;

*? 2)it.hasNext():以it當(dāng)前位置為參照愉舔,還有下一個(gè)元素嗎?

*? 3) it.next():先把it當(dāng)前位置的下一個(gè)元素取出來伙菜;把it的位置往后移動(dòng)一個(gè)元素轩缤;

*? 4)it.remove():把it當(dāng)前位置的元素刪除。

*? 5)在用迭代器遍歷集合期間贩绕,不要用集合對象名對集合進(jìn)行操作(如list.add(6)),會(huì)出現(xiàn)并發(fā)修改異常:java.util.ConcurrentModificationException火的。

```

public class Test2 {

? ? ? public static void main(String[] args) {

? ? ? ? ? ? ? List list = new ArrayList();

? ? ? ? ? ? ? list.add(1);

? ? ? ? ? ? ? list.add(2);

? ? ? ? ? ? ? list.add(3);

? ? ? ? ? ? ? list.add(4);

? ? ? ? ? ? ? list.add(5);

? ? ? ? ? ? ? // 集合的遍歷;for-each;

//? ? ? ? ? ? ? ? for (Object obj : list) {

//? ? ? ? ? ? ? ? ? ? ? ? System.out.println(obj.toString());

//? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? //普通的for循環(huán)淑倾;

//? ? ? ? ? ? ? ? for(int i=0;i<list.size();i++){

//? ? ? ? ? ? ? ? ? ? ? ? Object obj=list.get(i);

//? ? ? ? ? ? ? ? ? ? ? ? System.out.println(obj);

//? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? Iterator it=list.iterator();


? ? ? ? ? ? ? while(it.hasNext()){


? ? ? ? ? ? ? ? ? ? ? Object obj=it.next();//把it原有位置的下一個(gè)元素取出來馏鹤;把it的位置往后移動(dòng)一個(gè)元素;

? ? ? ? ? ? ? ? ? ? ? System.out.println(obj);

? ? ? ? ? ? ? ? ? ? ? //list.add(6);會(huì)出現(xiàn)并發(fā)修改異常:java.util.ConcurrentModificationException娇哆。

? ? ? ? ? ? ? ? ? ? ? it.remove();//it指向的是哪個(gè)元素湃累,就刪除哪個(gè)元素;

? ? ? ? ? ? ? }


? ? ? ? ? ? ? System.out.println(list.size());


? ? ? }

}

```

**2.2 LinkList**

.鏈表:LinkedList碍讨,物理空間上不連續(xù)治力,但邏輯上是連續(xù)的。

添加刪除元素效率高勃黍;不會(huì)引起大量元素的位移宵统;

*LinkedList的特點(diǎn):有序,不唯一覆获;有序是索引順序马澈;

*(1)遍歷時(shí)按添加順序;

*(2)內(nèi)存原理:鏈表

*(3)性能:按索引查詢弄息,效率低痊班;必須從第一個(gè)元素查起;

*? ? ? ? 按內(nèi)容查詢疑枯,效率低;

*? ? ? ? 添加刪除元素效率高蛔六;不會(huì)引起大量元素的位移荆永;

1.for-each;

2.普通for循環(huán);操作索引;

3.迭代器:

```

public class Test {

? ? ? public static void main(String[] args) {

? ? ? ? ? ? ? // 創(chuàng)建一個(gè)容器對象国章;

? ? ? ? ? ? ? List list = new LinkedList();// 運(yùn)用多態(tài)具钥;

? ? ? ? ? ? ? List subList = new LinkedList();

? ? ? ? ? ? ? subList.add(1);

? ? ? ? ? ? ? subList.add(2);

? ? ? ? ? ? ? // 添加;

? ? ? ? ? ? ? Person p1 = new Person();

? ? ? ? ? ? ? Person p2 = new Person();

? ? ? ? ? ? ? // add(Object obj):Object做形參液兽,可以接收不同的子類實(shí)參骂删;運(yùn)用多態(tài)掌动;

? ? ? ? ? ? ? list.add(p1);

? ? ? ? ? ? ? list.add(p2);

? ? ? ? ? ? ? list.add("Hello");

? ? ? ? ? ? ? // 123--->Object obj=new Integer(123);添加數(shù)字相當(dāng)于自動(dòng)裝箱;

? ? ? ? ? ? ? list.add(123);

? ? ? ? ? ? ? list.add(2, "java");

? ? ? ? ? ? ? list.addAll(subList);

? ? ? ? ? ? ? list.addAll(2, subList);

? ? ? ? ? ? ? // 刪除宁玫;

? ? ? ? ? ? ? // list.remove(2);//2是索引位置粗恢;

? ? ? ? ? ? ? // list.remove("java");//如果有多個(gè)"java",就刪除第一個(gè)欧瘪;

? ? ? ? ? ? ? // list.remove(new Integer(2));

? ? ? ? ? ? ? // list.removeAll(subList);//刪除的是所有和subList里相同的元素眷射,刪除的是與subList的交集;

? ? ? ? ? ? ? // 改佛掖;

? ? ? ? ? ? ? list.set(1, "today is perfect");

? ? ? ? ? ? ? // list.clear();

? ? ? ? ? ? ? //list.retainAll(subList);// 取與subList交集妖碉;

? ? ? ? ? ? ? // 查;

? ? ? ? ? ? ? System.out.println(list.size());// 實(shí)際元素的個(gè)數(shù)芥被,不是集合的總?cè)萘浚?/p>

? ? ? ? ? ? ? // System.out.println(list.get(0));//得到索引為0的位置的元素欧宜;

? ? ? ? ? ? ? System.out.println(list.contains(p1));

? ? ? ? ? ? ? System.out.println(list.isEmpty());

? ? ? ? ? ? ? // 集合的遍歷;

? ? ? ? ? ? ? for (Object obj : list) {

? ? ? ? ? ? ? ? ? ? ? System.out.println(obj.toString());

? ? ? ? ? ? ? }

? ? ? ? ? ? ? // 普通的for循環(huán)拴魄;

? ? ? ? ? ? ? for (int i = 0; i < list.size(); i++) {

? ? ? ? ? ? ? ? ? ? ? Object obj = list.get(i);

? ? ? ? ? ? ? ? ? ? ? System.out.println(obj);

? ? ? ? ? ? ? }

? ? ? ? ? ? ? Iterator it = list.iterator();

? ? ? ? ? ? ? while (it.hasNext()) {

? ? ? ? ? ? ? ? ? ? ? Object obj = it.next();// 把it原有位置的下一個(gè)元素取出來冗茸;把it的位置往后移動(dòng)一個(gè)元素;

? ? ? ? ? ? ? ? ? ? ? System.out.println(obj);

? ? ? ? ? ? ? ? ? ? ? // list.add(6);會(huì)出現(xiàn)并發(fā)修改異常:java.util.ConcurrentModificationException羹铅。

? ? ? ? ? ? ? ? ? ? ? it.remove();// it指向的是哪個(gè)元素蚀狰,就刪除哪個(gè)元素;

? ? ? ? ? ? ? }

? ? ? ? ? ? ? System.out.println(list.size());

? ? ? }

}

```

## 3.Set接口

? Set接口? ? 元素?zé)o序(hashCode())职员、不可重復(fù)的集合

? ? HashSet? ? LinkedHashSet? ? TreeSet

1)HashSet? 無序(hashCode())麻蹋、不可重復(fù)的集合? hashCode()? equals()

? *HashSet的特點(diǎn):無序,唯一焊切;

*(1)遍歷是不可預(yù)知順序扮授;

*(2)內(nèi)存原理:哈希表,用hashcode和equals()方法专肪;

*(3)性能:查詢效率高刹勃;

*? ? ? ? 添加刪除效率高;

*(4)自定義類嚎尤,建議重寫hashcode()和equals()方法荔仁,成對重寫。

*? ? 告訴程序你的比較策略芽死。

*? ? 不重寫乏梁,就用Object的方法了。

1. HashSet怎么保證元素的唯一性呢关贵?

*先用hashcode計(jì)算出地址遇骑,如果沒有元素,就存進(jìn)去揖曾;如果已有元素落萎,就用equals(),如果true亥啦,不添加了;

*如果false练链,就添加翔脱。

*

*hashcode相同,元素不一定相同兑宇;再用equals()碍侦,true才是相同的。

*hashcode不同隶糕,元素一定不同瓷产。

2.遍歷:

*? 1)for-each:

*? 2)迭代器:Iterator it=set.iterator();

*?

*3.添加:

*? set.add(Object obj);

*? set.addAll();

*?

*? 刪除:

*? set.remove(Object obj);

*? set.removeAll();

*?

*? 查:

*? set.isEmpty();

*? set.size();

*? set.clear();

*? set.contains();

*? set.containsAll();

*? set.retainAll();

*?

*? 轉(zhuǎn)換:

*? //把集合類型轉(zhuǎn)成Object類型的數(shù)組;

? ? ? Object[] objArr=set.toArray();

*?

* */

```

public class TestHashSet {

? ? ? public static void main(String[] args) {


? ? ? ? ? ? ? //創(chuàng)建一個(gè)HashSet對象枚驻;

? ? ? ? ? ? ? Set set=new HashSet();


? ? ? ? ? ? ? //添加濒旦;

? ? ? ? ? ? ? System.out.println(set.add(23));//true;

? ? ? ? ? ? ? set.add(36);

? ? ? ? ? ? ? set.add(48);

? ? ? ? ? ? ? set.add(77);

? ? ? ? ? ? ? set.add(86);

? ? ? ? ? ? ? set.add(67);

? ? ? ? ? ? ? set.add(76);

? ? ? ? ? ? ? System.out.println(set.add(23));//false;

? ? ? ? ? ? ? set.add(56);

? ? ? ? ? ? ? set.add(78);

? ? ? ? ? ? ? set.add(47);


? ? ? ? ? ? ? //刪除;

? ? ? ? ? ? ? set.remove(47);



? ? ? ? ? ? ? //改再登;

? ? ? ? ? ? ? //查尔邓;

? ? ? ? ? ? ? System.out.println(set.size());

? ? ? ? ? ? ? System.out.println(set.isEmpty());

? ? ? ? ? ? ? //set.clear();


? ? ? ? ? ? ? //遍歷;

? ? ? ? ? ? ? Iterator it=set.iterator();


? ? ? ? ? ? ? while(it.hasNext()){

? ? ? ? ? ? ? ? ? ? ? Object obj=it.next();

? ? ? ? ? ? ? ? ? ? ? System.out.println(obj);

? ? ? ? ? ? ? }

? ? ? ? ? ? ? System.out.println("==========================");

? ? ? ? ? ? ? //用for-each遍歷锉矢;

? ? ? ? ? ? ? for(Object obj:set){

? ? ? ? ? ? ? ? ? ? ? System.out.println(obj.toString());

? ? ? ? ? ? ? }


? ? ? ? ? ? ? //把集合類型轉(zhuǎn)成Object類型的數(shù)組梯嗽;

? ? ? ? ? ? ? Object[] objArr=set.toArray();

? ? ? ? ? ? ? System.out.println(Arrays.toString(objArr));

? ? ? }

}

```

? ? 2)LinkedHashSet:遍歷輸出的內(nèi)容和添加的順序一致

? ? 3)TreeSet

? ? ? * 1.添加元素必須是同一類型,否則遍歷出錯(cuò)

? ? ? * 2.遍歷輸出順序按默認(rèn)順序(從小到大)如:String,Integer等

? ? ? * 3.自然排序,必須要實(shí)現(xiàn)Comparable,compareTo方法沽损,實(shí)現(xiàn)排序

? ? ? * 4.定制排序,需要實(shí)現(xiàn)接口Comparator接口

*TreeSet:有序灯节,唯一;有序绵估,不是添加順序炎疆,是大小順序;

*(1)遍歷時(shí)是大小順序国裳;

*(2)內(nèi)存原理:二叉樹形入;

*(3)查詢(按內(nèi)容查詢),效率中等缝左;在ArrayList和HashSet之間亿遂;

*? ? 添加刪除,效率中等渺杉。

*(4)如果是自定義類蛇数,要實(shí)現(xiàn)Comparable接口;

*? ? 告訴程序你的比較策略少办;

*? ? 否則會(huì)報(bào):java.lang.ClassCastException:Student--->Comparable;

*? ?

*? ? Set treeSet=new TreeSet();

*

*(5) 也可以實(shí)現(xiàn)Comparator接口苞慢;

```

*? ? ? StuScoreComp sComp=new StuScoreComp();

? ? ? ? ? ? ? Set treeSet = new TreeSet(sComp);

public class TestTreeSet {

? ? ? public static void main(String[] args) {


? ? ? ? ? ? ? //創(chuàng)建TreeSet對象诵原;

? ? ? ? ? ? ? Set treeSet=new TreeSet();


? ? ? ? ? ? ? //添加英妓;

? ? ? ? ? ? ? treeSet.add(50);

? ? ? ? ? ? ? treeSet.add(35);

? ? ? ? ? ? ? treeSet.add(78);

? ? ? ? ? ? ? treeSet.add(27);

? ? ? ? ? ? ? treeSet.add(45);

? ? ? ? ? ? ? treeSet.add(56);

? ? ? ? ? ? ? treeSet.add(40);

? ? ? ? ? ? ? treeSet.add(45);

? ? ? ? ? ? ? treeSet.add(48);

? ? ? ? ? ? ? treeSet.add(90);


? ? ? ? ? ? ? //遍歷挽放;

? ? ? ? ? ? ? Iterator it=treeSet.iterator();


? ? ? ? ? ? ? while(it.hasNext()){

? ? ? ? ? ? ? ? ? ? ? Object obj=it.next();

? ? ? ? ? ? ? ? ? ? ? System.out.println(obj);


? ? ? ? ? ? ? }

? ? ? }

}

```

## 4.Map接口

*Map特有的三個(gè)方法:

*map.keySet();獲取key的集合;

*map.values();獲取value的集合蔓纠;

*map.entrySet();獲取key和value的集合辑畦;

? Map接口? ? ? key-value對”的集合

? ? ? HashMap(效率高)? ? ? ? ? LinkedHashMap? ? TreeMap? HashTable(古老的類,基于線程安全,效率低)

? ? Properties? load(InputStream inStream) 從輸入字節(jié)流讀取屬性列表(鍵和元素對)腿倚。

*HashMap:

*1.是鍵值對纯出,每個(gè)元素包含兩部分:key,value;

*2.key和value是一一對應(yīng)的;

*3.key是無序敷燎,唯一的暂筝;如果添加了重復(fù)的key,不報(bào)錯(cuò),后面的會(huì)覆蓋前面的硬贯;

*4.value是無序焕襟,不唯一的;

*5.key和value都可以是null饭豹。

*6.如果key是自定義類:要重寫hashCode()和equals()方法鸵赖;

*? 告訴程序你的比較策略;

內(nèi)存原理:key部分與HashSet原理相同拄衰,無序它褪,唯一;

? ? ? ? ? ? ? ? 事實(shí)上,HashSet底層調(diào)用的是HashMap.

? ? ? ? ? ? ? /*

*HashMap底層是一個(gè)Entry類型的數(shù)組翘悉;

*Entry<Integer,String>:

*Entry:key,value和指向下一個(gè)Entry元素的引用茫打。

*

*

```

*/

public class TestHashMap1 {

? ? ? public static void main(String[] args) {


? ? ? ? ? ? ? Map<Integer,String> map=new HashMap<Integer,String>();


? ? ? ? ? ? ? map.put(1, "羅馬假日");

? ? ? ? ? ? ? map.put(3, "三國演義");

? ? ? ? ? ? ? map.put(2, "煉金術(shù)士");


? ? ? ? ? ? ? //遍歷:

? ? ? ? ? ? ? Set entrySet=map.entrySet();


? ? ? ? ? ? ? Iterator<Entry<Integer,String>> it=entrySet.iterator();


? ? ? ? ? ? ? while(it.hasNext()){

//? ? ? ? ? ? ? ? ? ? ? ? it.next().getKey();

//? ? ? ? ? ? ? ? ? ? ? ? it.next().getValue();

? ? ? ? ? ? ? ? ? ? ? Entry entry=it.next();

? ? ? ? ? ? ? ? ? ? ? System.out.println(entry);

? ? ? ? ? ? ? }


? ? ? }

}

```

/*

*TreeMap: 有序(大小順序),唯一镐确;按key排序包吝;

*如果key是自定義類:要實(shí)現(xiàn)Comparable或Comparator接口;

*告訴程序你的比較策略源葫;

*

*/

```

import java.util.TreeMap;

public class TestTreeMap {

? ? ? public static void main(String[] args) {


? ? ? ? ? ? ? Map<Integer,String> map=new TreeMap<Integer,String>();


? ? ? ? ? ? ? map.put(16, "煉金術(shù)士");

? ? ? ? ? ? ? map.put(2, "煉金術(shù)士");

? ? ? ? ? ? ? map.put(1, "羅馬假日");

? ? ? ? ? ? ? map.put(3, "三國演義");

? ? ? ? ? ? ? map.put(2, "圍城");


? ? ? ? ? ? ? //遍歷:

? ? ? ? ? ? ? Set entrySet=map.entrySet();


? ? ? ? ? ? ? Iterator<Entry<Integer,String>> it=entrySet.iterator();


? ? ? ? ? ? ? while(it.hasNext()){

? ? ? ? ? ? ? ? ? ? ? Entry entry=it.next();

? ? ? ? ? ? ? ? ? ? ? System.out.println(entry);

? ? ? ? ? ? ? }


? ? ? }

}

```

## 5.迭代器

迭代器:

*? 1)生成迭代器:Iterator it=list.iterator();//it初始位置在索引為0的元素之前儒恋;

*? 2)it.hasNext():以it當(dāng)前位置為參照,還有下一個(gè)元素嗎嘀趟?

*? 3) it.next():先把it當(dāng)前位置的下一個(gè)元素取出來雄驹;把it的位置往后移動(dòng)一個(gè)元素;

*? 4)it.remove():把it當(dāng)前位置的元素刪除荣堰。

*? 5)在用迭代器遍歷集合期間床未,不要用集合對象名對集合進(jìn)行操作(如list.add(6)),會(huì)出現(xiàn)并發(fā)修改異常:java.util.ConcurrentModificationException。

list.iterator():

(1) iterator()不是Collection自己的方法振坚,是繼承自接口Iterable;

(2) Iterator iterator();返回值是Iterator類型的薇搁;

(3)? Iterator: 是一個(gè)接口類型,它里面的三個(gè)方法:hasNext();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? next();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? remove();

(4)遍歷[集合]時(shí)底層調(diào)用Iterator完成操作渡八。

## 6.Collectiongons工具類

/*

*1.Collections:

*? 1)和Arrays一樣啃洋,是專門用來操作集合的工具類传货;

*? 2)大部分方法 都是靜態(tài)的,可以通過類名直接調(diào)用宏娄;

*? 3)構(gòu)造方法私有化问裕,不能創(chuàng)建Collections的對象;

*?

*2.Collections的常用方法:

*? 1)Collections.addAll(list,60,50);

*? //如果是自定義對象孵坚,要給出比較策略粮宛,實(shí)現(xiàn)Comparable接口;

*? 2)Collections.sort(list);

*? //用于排好序的集合上卖宠;查到就返回索引值巍杈,沒查到就返回-(應(yīng)該在的位置+1);

*? 3)int index=Collections.binarySearch(list, 67);

*? 4)Collections.copy(list, list2);

*? 5)int max=Collections.max(list);

? ? ? 6)int min=Collections.min(list);

? ? ? 7)Collections.fill(list, 888);

? ? ? 8)Collections.reverse(list);

*? 9)List list3 = Collections.synchronizedList(list);

*

*3.Collection和Collections的區(qū)別:

*? 1)Collection是Java提供的集合接口扛伍,存儲一組不唯一秉氧,無序的對象。它有兩個(gè)子接口List和Set蜒秤。

? 2)Java中還有一個(gè)Collections類汁咏,專門用來操作集合類 ,它提供一系列靜態(tài)方法實(shí)現(xiàn)對各種集合的搜索作媚、排序攘滩、線程安全化等操作。

*/

```

public class TestCollections {

? ? ? public static void main(String[] args) {


? ? ? ? ? ArrayList list=new ArrayList();


? ? ? ? ? //添加Integer類型的元素纸泡;

? ? ? ? ? list.add(3);

? ? ? ? ? list.add(4);

? ? ? ? ? list.add(1);

? ? ? ? ? list.add(2);

? ? ? ? ? list.add(5);


? ? ? ? ? Collections.addAll(list,60,50);

? ? ? ? ? //Collections.sort(list);

? ? ? ? ? //int index=Collections.binarySearch(list, 50);

? ? ? ? ? ArrayList list2=new ArrayList();

? ? ? ? ? Collections.addAll(list2,11,12,13,14);

? ? ? ? ? Collections.copy(list, list2);

? ? ? ? ? //Collections.fill(list, 888);

? ? ? ? ? //Collections.reverse(list);

? ? ? ? ? int max=Collections.max(list);

? ? ? ? ? int min=Collections.min(list);

? ? ? ? ? System.out.println(max+" "+min);

? ? ? ? ? //System.out.println(index);


? ? ? ? ? //遍歷:

? ? ? ? ? Iterator it = list.iterator();

? ? ? ? ? ? ? while (it.hasNext()) {

? ? ? ? ? ? ? ? ? ? ? System.out.println(it.next());

? ? ? ? ? ? ? }


? ? ? ? ? ? ? //ArrayList是線程非同步漂问,程序員可以自己寫代碼把ArrayList轉(zhuǎn)成同步的操作;

? ? ? ? ? ? ? List list3 = Collections.synchronizedList(list);

? ? ? }

}

```

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末女揭,一起剝皮案震驚了整個(gè)濱河市蚤假,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吧兔,老刑警劉巖磷仰,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異境蔼,居然都是意外死亡灶平,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門箍土,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逢享,“玉大人,你說我怎么就攤上這事吴藻÷髋溃” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侧但。 經(jīng)常有香客問我吆你,道長,這世上最難降的妖魔是什么俊犯? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮伤哺,結(jié)果婚禮上燕侠,老公的妹妹穿的比我還像新娘。我一直安慰自己立莉,他們只是感情好绢彤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蜓耻,像睡著了一般茫舶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刹淌,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天饶氏,我揣著相機(jī)與錄音,去河邊找鬼有勾。 笑死疹启,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蔼卡。 我是一名探鬼主播喊崖,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雇逞!你這毒婦竟也來了荤懂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤塘砸,失蹤者是張志新(化名)和其女友劉穎节仿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掉蔬,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粟耻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了眉踱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挤忙。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谈喳,靈堂內(nèi)的尸體忽然破棺而出册烈,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布赏僧,位于F島的核電站大猛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏淀零。R本人自食惡果不足惜挽绩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驾中。 院中可真熱鬧唉堪,春花似錦、人聲如沸肩民。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽持痰。三九已至灶搜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間工窍,已是汗流浹背割卖。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留患雏,地道東北人究珊。 一個(gè)月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像纵苛,于是被迫代替她去往敵國和親剿涮。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 四攻人、集合框架 1:String類:字符串(重點(diǎn)) (1)多個(gè)字符組成的一個(gè)序列取试,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 752評論 0 2
  • 第十天 權(quán)限修飾符 public protected default private 同一類 true true ...
    炙冰閱讀 539評論 0 1
  • Collection ├List │├LinkedList │├ArrayList │└Vector │└Stac...
    AndyZX閱讀 875評論 0 1
  • Java集合類可用于存儲數(shù)量不等的對象,并可以實(shí)現(xiàn)常用的數(shù)據(jù)結(jié)構(gòu)如棧,隊(duì)列等,Java集合還可以用于保存具有映射關(guān)...
    小徐andorid閱讀 1,941評論 0 13
  • 一怀吻、基礎(chǔ)知識:1瞬浓、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,378評論 0 4