JAVA集合類——難得的總結(jié)

以下資料是在學(xué)習(xí)中總結(jié)出來的家卖,希望對(duì)你有所幫助寿谴。如果需要請(qǐng)轉(zhuǎn)載捕发,謝謝疏旨。

1. StringBuffer 線程安全,StringBuilder 線程不安全 效率稍高些

集(Set):集里的對(duì)象不按任何特定的方式排列扎酷,按索引值來操作數(shù)據(jù)檐涝,不能有重復(fù)的元素

列表(List):序列中的對(duì)象以線性方式存儲(chǔ),按索引值來操作數(shù)據(jù)法挨,可以有重復(fù)的元素

映射(Map):映射的每一項(xiàng)為“名稱—數(shù)值”對(duì)谁榜,名稱不可以重復(fù),值可以重復(fù)凡纳,一個(gè)名稱對(duì)應(yīng)一個(gè)唯一的值

顯示指定集合類型:不經(jīng)歷裝箱過程窃植。

【Java學(xué)習(xí)資料免費(fèi)分享微信:tangniu520666,備注“4”荐糜。需要的可以留意一下】

Collection resulte = dao.retrieveByClause(TaskVO.class, sql);

轉(zhuǎn)換為數(shù)組時(shí)巷怜,明確指定返回?cái)?shù)組的大小

return result.toArray(new TaskVO[result.size()]);

數(shù)組不能強(qiáng)制轉(zhuǎn)型:

String[] s= (String[])list.toArray();——錯(cuò)誤

String[] s= (String[])list.toArray(new String[list.size()]);——正確

迭代器是按次序一個(gè)一個(gè)地獲取集合中所有的對(duì)象,是訪問集合中每個(gè)元素的標(biāo)準(zhǔn)機(jī)制暴氏。

迭代器的創(chuàng)建:Collection接口的iterator()方法返回一個(gè)Iterator

Iterator it=test.iterator(); //將test集合對(duì)象轉(zhuǎn)為迭代器

迭代器的常用方法:

hasNext() //判斷迭代器中是否有下一個(gè)元素

next() //返回迭代的下一個(gè)元素

Remove() //將迭代器新返回的元素刪除

The Iterator interface is shown below: public interface Iterator {

boolean hasNext();

Object next();

void remove(); // Optional

}

可以認(rèn)為迭代器是指向兩個(gè)元素之間的位置.

在調(diào)用remove()方法的時(shí)候, 必須調(diào)用一次next()方法.

remove()方法實(shí)際上是刪除上一個(gè)返回的元素.

List常用方法:

void add(int index, Object element) :添加對(duì)象element到位置index上

boolean addAll(int index, Collection collection) :在index位置后添加容器collection中所有的元素

Object get(int index) :取出下標(biāo)為index的位置的元素

int indexOf(Object element) :查找對(duì)象element 在List中第一次出現(xiàn)的位置

int lastIndexOf(Object element) :查找對(duì)象element 在List中最后出現(xiàn)的位置

Object remove(int index) :刪除index位置上的元素

ListIterator listIterator(int startIndex) :返回一個(gè)ListIterator 跌代器延塑,開始位置為startIndex

List subList(int fromIndex, int toIndex) :返回一個(gè)子列表List ,元素存放為從 fromIndex 到toIndex之前的一個(gè)元素

ArrayList:我們可以將其看作是能夠自動(dòng)增長(zhǎng)容量的數(shù)組。

利用ArrayList的toArray()返回一個(gè)數(shù)組答渔。

Arrays.asList()返回一個(gè)列表关带。

迭代器(Iterator) 給我們提供了一種通用的方式來訪問集合中的元素。

View方式:

一種是測(cè)量迭代元素的時(shí)間:

另一種測(cè)量使用toArray調(diào)用創(chuàng)建數(shù)組:

最后得到結(jié)果:

使用toArray調(diào)用中創(chuàng)建的數(shù)組迭代元素的速度要比使用iterator的速度大約快30%到60%沼撕。

但如果將使用toArray方法創(chuàng)建數(shù)組的時(shí)間開銷含在內(nèi)宋雏。則使用iterator實(shí)際上要快10%到20%芜飘,所以我們盡量不要?jiǎng)?chuàng)建中間數(shù)組。而使用迭代的方式磨总。

ArrayList自動(dòng)擴(kuò)充機(jī)制

實(shí)現(xiàn)機(jī)制:ArrayList.ensureCapacity(int minCapacity)

首先得到當(dāng)前elementData 屬性的長(zhǎng)度oldCapacity燃箭。

然后通過判斷oldCapacity和minCapacity參數(shù)誰大來決定是否需要擴(kuò)容, 如果minCapacity大于

oldCapacity,那么我們就對(duì)當(dāng)前的List對(duì)象進(jìn)行擴(kuò)容舍败。

擴(kuò)容的的策略為:取(oldCapacity * 3)/2 + 1和minCapacity之間更大的那個(gè)招狸。然后使用數(shù)組拷

貝的方法,把以前存放的數(shù)據(jù)轉(zhuǎn)移到新的數(shù)組對(duì)象中

如果minCapacity不大于oldCapacity那么就不進(jìn)行擴(kuò)容邻薯。

LinkedList

LinkedList是采用雙向循環(huán)鏈表實(shí)現(xiàn)的裙戏。

利用LinkedList實(shí)現(xiàn)棧(stack)、隊(duì)列(queue)厕诡、雙向隊(duì)列(double-ended queue )累榜。

它具有方法addFirst()、addLast()灵嫌、getFirst()壹罚、getLast()、removeFirst()寿羞、removeLast()等猖凛。

用LinkedList實(shí)現(xiàn)隊(duì)列:

隊(duì)列(Queue)是限定所有的插入只能在表的一端進(jìn)行,而所有的刪除都在表的另一端進(jìn)行的線性表绪穆。

表中允許插入的一端稱為隊(duì)尾(Rear)辨泳,允許刪除的一端稱為隊(duì)頭(Front)。

隊(duì)列的操作是按先進(jìn)先出(FIFO)的原則進(jìn)行的玖院。

隊(duì)列的物理存儲(chǔ)可以用順序存儲(chǔ)結(jié)構(gòu)菠红,也可以用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

用LinkedList實(shí)現(xiàn)棧:

棧(Stack)也是一種特殊的線性表难菌,是一種后進(jìn)先出(LIFO)的結(jié)構(gòu)试溯。

棧是限定僅在表尾進(jìn)行插入和刪除運(yùn)算的線性表,表尾稱為棧頂(top)郊酒,表頭稱為棧底(bottom)遇绞。

棧的物理存儲(chǔ)可以用順序存儲(chǔ)結(jié)構(gòu),也可以用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)猎塞。

ArrayList和LinkedList的比較:

ArrayList底層采用數(shù)組完成试读,而LinkedList則是以一般的雙向鏈表(double-linked list)完成杠纵,其內(nèi)每個(gè)對(duì)象除了數(shù)據(jù)本身外荠耽,還有兩個(gè) 引用,分別指向前一個(gè)元素和后一個(gè)元素比藻。

如果我們經(jīng)常在List的開始處增加元素铝量,或者在List中進(jìn)行插入和刪除操作倘屹,我們應(yīng)該使用LinkedList,否則的話慢叨,使用ArrayList將更加快速纽匙。

小結(jié):

集合是一個(gè)保存其他對(duì)象的對(duì)象

Collection接口除了實(shí)現(xiàn)映射的集合類之外的所有集合類定義了一些方法

List集合類型描述了一種按位置存儲(chǔ)數(shù)據(jù)的對(duì)象,有序的拍谐。

ArrayList是一種在內(nèi)存連續(xù)區(qū)域 中存儲(chǔ)數(shù)據(jù)的通用數(shù)組

編碼習(xí)慣:

面向接口的編程,盡可能降低代碼變化率:

List lst = new ArrayList();

盡量避免創(chuàng)建不必要的對(duì)象:vo應(yīng)在if判斷成立時(shí)創(chuàng)建

TaskReportVO reportvos = new TaskReportVO();

if(i > 0){

lstAllVos.add(reportvos); }

盡量避免同時(shí)遍歷和刪除集合烛缔。因?yàn)檫@會(huì)改變集合的大小轩拨;

for( Iterator iter = ComList.iterator(); iter.hasNext();){

ComType com = iter.next();

if ( !com.getName().contains("abc")){

ComList.remove(com);}

}

推薦:

for( Iterator iter = ComList.iterator(); iter.hasNext();){

ComType com = iter.next();

if ( !com.getName().contains("abc")){

iter.remove(com); }

預(yù)估集合內(nèi)持有對(duì)象的大小践瓷,不能持有大量對(duì)象,占據(jù)內(nèi)存:

List lst = new ArrayList();

無限制的在lst中add element亡蓉,勢(shì)必會(huì)造成lst占用內(nèi)存過高晕翠。造成內(nèi)存溢出

Map接口:

集合框架的第二類接口樹。

它提供了一組鍵值的映射砍濒。其中存儲(chǔ)的每個(gè)對(duì)象都有一個(gè)相應(yīng)的關(guān)鍵字(key)淋肾,關(guān)鍵字決定了對(duì)象在Map中的存儲(chǔ)位置。

關(guān)鍵字應(yīng)該是唯一的爸邢,每個(gè)key 只能映射一個(gè)value樊卓。

常用方法:

Object put(Object key,Object value):用來存放一個(gè)鍵-值對(duì)Map中

Object remove(Object key):根據(jù)key(鍵),移除鍵-值對(duì)杠河,并將值返回

void putAll(Map mapping) :將另外一個(gè)Map中的元素存入當(dāng)前的Map中

void clear() :清空當(dāng)前Map中的元素

Object get(Object key) :根據(jù)key(鍵)取得對(duì)應(yīng)的值

boolean containsKey(Object key) :判斷Map中是否存在某鍵(key)

boolean containsValue(Object value):判斷Map中是否存在某值(value)

public Set keySet() :返回所有的鍵(key)简识,并使用Set容器存放

public Collection values() :返回所有的值(Value),并使用Collection存放

public Set entrySet() :返回一個(gè)實(shí)現(xiàn) Map.Entry 接口的元素 Set

HashMap:

Map 主要用于存儲(chǔ)鍵(key)值(value)對(duì)感猛,根據(jù)鍵得到值七扰,因此鍵不允許重復(fù),但允許值重復(fù)。

HashMap 是一個(gè)最常用的Map,它根據(jù)鍵的HashCode 值存儲(chǔ)數(shù)據(jù),根據(jù)鍵可以直接獲取它的值陪白,具有很快的訪問速度颈走。

HashMap最多只允許一條記錄的鍵為Null;允許多條記錄的值為 Null;

HashMap不支持線程的同步,即任一時(shí)刻可以有多個(gè)線程同時(shí)寫HashMap;可能會(huì)導(dǎo)致數(shù)據(jù)的不一致咱士。如果需要同步立由,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力。

HashMap實(shí)現(xiàn)原理---散列

Hash哈希算法的意義在于提供了一種快速存取數(shù)據(jù)的方法,它用一種算法建立鍵值與真實(shí)值之間的對(duì)應(yīng)關(guān)系序厉。散列表又稱為哈希表锐膜。散列表算法的基本思想是:以結(jié)點(diǎn)的關(guān)鍵字為自變量,通過一定的函數(shù)關(guān)系(散列函數(shù))計(jì)算出對(duì)應(yīng)的函數(shù)值弛房,以這個(gè)值作為該結(jié)點(diǎn)存儲(chǔ)在散列表中地址道盏。

當(dāng)散列表中的元素存放太滿,就必須進(jìn)行再散列,將產(chǎn)生一個(gè)新的散列表荷逞,所有元素存放到新的散列表中媒咳,原先的散列表將被刪除。在Java語言中种远,通過負(fù)載因子(load factor)來決定何時(shí)對(duì)散列表進(jìn)行再散列涩澡。例如:如果負(fù)載因子0.75,當(dāng)散列表中已經(jīng)有75%位置已經(jīng)放滿坠敷,那么將進(jìn)行再散列妙同。

負(fù)載因子越高(越接近1.0),內(nèi)存的使用效率越高膝迎,元素的尋找時(shí)間越長(zhǎng)渐溶。負(fù)載因子越低(越接近0.0),元素的尋找時(shí)間越短弄抬,內(nèi)存浪費(fèi)越多茎辐。

何時(shí)需重寫equals?

當(dāng)一個(gè)類有自己特有的“邏輯相等”概念(不同于對(duì)象身份的概念)掂恕;

Object類僅僅提供了一個(gè)對(duì)引用的比較拖陆,如果兩個(gè)引用不是同一個(gè)那就返回false,這是無法滿足大多數(shù)對(duì)象比較的需要的懊亡,所以要覆蓋依啰;

使用==操作符檢查實(shí)參是否為指向?qū)ο蟮囊谩?/p>

使用instanceof操作符檢查實(shí)參是否為正確的類型

把實(shí)參轉(zhuǎn)換到正確的類型;

對(duì)于該類中每一個(gè)“關(guān)鍵”域店枣,檢查實(shí)參中的域與當(dāng)前對(duì)象中對(duì)應(yīng)的域值是否匹 配速警。對(duì)于既不是float也不是double類型的基本類型的域,可以使用==操作符 進(jìn)行比較鸯两;對(duì)于對(duì)象引用類型的域闷旧,可以遞歸地調(diào)用所引用的對(duì)象的equals方法,對(duì)于float和double類型的域钧唐,先轉(zhuǎn)換成int或long類型的值忙灼,然后使用==操作符比較;

當(dāng)你編寫完成了equals方法之后钝侠,應(yīng)該問自己三個(gè)問題:它是否是對(duì)稱的该园、傳 遞的、一致的帅韧? 如果答案是否定的里初,那么請(qǐng)找到 這些特性未能滿足的原因,再修改equals方法的代碼

equals()和hashCode()同時(shí)覆寫

尤其強(qiáng)調(diào)當(dāng)一個(gè)對(duì)象被當(dāng)作鍵值(或索引)來使用的時(shí)候要重寫這兩個(gè)方法忽舟;

覆寫equals后双妨,兩個(gè)不同實(shí)例可能在邏輯上相等淮阐,但是根據(jù)Object.hashCode方法卻產(chǎn)生不同的散列碼,違反“相等的對(duì)象必須具有相等的散列碼”斥难。

導(dǎo)致,當(dāng)你用其中的一個(gè)作為鍵保存到hashMap帘饶、hasoTable或hashSet中哑诊,再以“相等的”找另 一個(gè)作為鍵值去查找他們的時(shí)候,則根本找不到

不同類型的hashCode取值

如果該域是布爾型的及刻,計(jì)算(f镀裤?0:1)

如果是char,short,byte或int,計(jì)算(int)f

如果是long類型缴饭,計(jì)算(int)(f^(f>>>32))

如果是float類型暑劝,計(jì)算Float.floatToIntBits(f)

如果是double類型,計(jì)算Dobule.doubleToLongBits(f)

如果該域是一個(gè)對(duì)象引用颗搂,遞歸調(diào)用hashCode

如果該域是一個(gè)數(shù)組担猛,則把每個(gè)元素當(dāng)做單獨(dú)的域來處理,對(duì)每個(gè)重要的元素計(jì)算一個(gè)散列碼丢氢,

比較:

HashMap的存入順序和輸出順序無關(guān)傅联。

LinkedHashMap 則保留了鍵值對(duì)的存入順序。

TreeMap則是對(duì)Map中的元素進(jìn)行排序疚察。

因?yàn)镠ashMap和LinkedHashMap 存儲(chǔ)數(shù)據(jù)的速度比直接使用TreeMap 要快蒸走,存取效率要高。

當(dāng)完成了所有的元素的存放后貌嫡,我們?cè)賹?duì)整個(gè)的Map中的元素進(jìn)行排序比驻。這樣可以提高整個(gè)程序的運(yùn)行的效率,縮短執(zhí)行時(shí)間岛抄。

注意:TreeMap中是根據(jù)鍵(Key)進(jìn)行排序的别惦。而如果我們要使用TreeMap來進(jìn)行正常的排序的話,Key 中存放的對(duì)象必須實(shí)現(xiàn)Comparable 接口夫椭。

Set:

擴(kuò)展Collection接口

不允許重復(fù)元素

對(duì) add()步咪、equals() 和 hashCode() 方法添加了限制

HashSet和TreeSet是Set的實(shí)現(xiàn)

Set—》hashSet linkedHashSet

SortedSet —》 TreeSet

HashSet常用方法:

public boolean contains(Object o) :如果set包含指定元素,返回true

public Iterator iterator()返回set中元素的迭代器

public Object[] toArray() :返回包含set中所有元素的數(shù)組public Object[] toArray(Object[] a) :返回包含set中所有元素的數(shù)組益楼,返回?cái)?shù)組的運(yùn)行時(shí)類型是指定數(shù)組的運(yùn)行時(shí)類型

public boolean add(Object o) :如果set中不存在指定元素猾漫,則向set加入

public boolean remove(Object o) :如果set中存在指定元素,則從set中刪除

public boolean removeAll(Collection c) :如果set包含指定集合感凤,則從set中刪除指定集合的所有元素

public boolean containsAll(Collection c) :如果set包含指定集合的所有元素悯周,返回true。如果指定集合也是一個(gè)set陪竿,只有是當(dāng)前set的子集時(shí)禽翼,方法返回true

實(shí)現(xiàn)Set接口的HashSet屠橄,依靠HashMap來實(shí)現(xiàn)的。

我們應(yīng)該為要存放到散列表的各個(gè)對(duì)象定義hashCode()和equals()闰挡。

如何達(dá)到不能存在重復(fù)元素的目的锐墙?

“鍵”就是我們要存入的對(duì)象,“值”則是一個(gè)常量长酗。這樣可以確保溪北,我們所需要的存儲(chǔ)的信息

之是“鍵”。而“鍵”在Map中是不能重復(fù)的夺脾,這就保證了我們存入Set中的所有的元素都不重復(fù)之拨。

HashSet如何過濾重復(fù)元素

調(diào)用元素HashCode獲得哈希碼--》判斷哈希碼是否相等,不相等則錄入

---》相等則判斷equals()后是否相等咧叭,不相等在進(jìn)行 hashcode錄入蚀乔,相等不錄入

TreeSet:

TreeSet是依靠TreeMap來實(shí)現(xiàn)的。

TreeSet是一個(gè)有序集合菲茬,TreeSet中元素將按照升序排列吉挣,缺省是按照自然順序進(jìn)行排列,意味著TreeSet中元素要實(shí)現(xiàn)Comparable接口

我們可以在構(gòu)造TreeSet對(duì)象時(shí)婉弹,傳遞實(shí)現(xiàn)了Comparator接口的比較器對(duì)象听想。

幾種Set的比較:

HashSet外部無序地遍歷成員。

成員可為任意Object子類的對(duì)象马胧,但如果覆蓋了equals方法汉买,同

時(shí)注意修改hashCode方法。

TreeSet外部有序地遍歷成員佩脊;

附加實(shí)現(xiàn)了SortedSet, 支持子集等要求順序的操作

成員要求實(shí)現(xiàn)Comparable接口蛙粘,或者使用Comparator構(gòu)造

TreeSet。成員一般為同一類型威彰。

LinkedHashSet外部按成員的插入順序遍歷成員

成員與HashSet成員類似

HashSet是基于Hash算法實(shí)現(xiàn)的出牧,其性能通常都優(yōu)于TreeSet。我們通常都應(yīng)該使用HashSet歇盼,在我們需要排序的功能時(shí)舔痕,我們才使用TreeSet。

HashSet的元素存放順序和我們添加進(jìn)去時(shí)候的順序沒有任何關(guān)系豹缀,而LinkedHashSet 則保持元素的添加順序伯复。TreeSet則是對(duì)我們的Set中的元素進(jìn)行排序存放。

一般來說邢笙,當(dāng)您要從集合中以有序的方式抽取元素時(shí)如捅,TreeSet 實(shí)現(xiàn)就會(huì)有用處速挑。為了能順利進(jìn)行,添加到 TreeSet 的元素必須是可排序的。 而您同樣需要對(duì)添加到TreeSet中的類對(duì)象實(shí)現(xiàn) Comparable 接口的支持艘绍。一般說來,先把元素添加到 HashSet,再把集合轉(zhuǎn)換為 TreeSet 來進(jìn)行有序遍歷會(huì)更快。

Comparable和Comparator

Comparable 接口以提供自然排序順序说莫。

對(duì)于那些沒有自然順序的類、或者當(dāng)您想要一個(gè)不同于自然順序的順序時(shí)寞焙,您可以實(shí)現(xiàn)

Comparator 接口來定義您自己的排序函數(shù)储狭。可以將Comparator傳遞給Collections.sort或Arrays.sort棺弊。

Comparator接口

當(dāng)一個(gè)類并未實(shí)現(xiàn)Comparable晶密,或者不喜歡缺省的Comaparable行為擒悬∧K可以實(shí)現(xiàn)Comparator接口

直接實(shí)現(xiàn)Comparator的compare接口完成自定義比較類。

例:Arrays.sort(results, new Comparator() 數(shù)組排序 RepDataQueryExecutor

例:Collections.sort(lst,new Comparator()

本文是在學(xué)習(xí)中的總結(jié)懂牧,歡迎轉(zhuǎn)載但請(qǐng)注明出處:http://blog.csdn.net/pistolove/article/details/41346969

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末侈净,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子僧凤,更是在濱河造成了極大的恐慌畜侦,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躯保,死亡現(xiàn)場(chǎng)離奇詭異旋膳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)途事,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門验懊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尸变,你說我怎么就攤上這事义图。” “怎么了召烂?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵碱工,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我奏夫,道長(zhǎng)怕篷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任酗昼,我火速辦了婚禮匙头,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仔雷。我一直安慰自己蹂析,他們只是感情好舔示,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著电抚,像睡著了一般惕稻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蝙叛,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天俺祠,我揣著相機(jī)與錄音,去河邊找鬼借帘。 笑死蜘渣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肺然。 我是一名探鬼主播蔫缸,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼际起!你這毒婦竟也來了拾碌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤街望,失蹤者是張志新(化名)和其女友劉穎校翔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灾前,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡防症,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哎甲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔫敲。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烧给,靈堂內(nèi)的尸體忽然破棺而出燕偶,到底是詐尸還是另有隱情,我是刑警寧澤础嫡,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布指么,位于F島的核電站,受9級(jí)特大地震影響榴鼎,放射性物質(zhì)發(fā)生泄漏伯诬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一巫财、第九天 我趴在偏房一處隱蔽的房頂上張望盗似。 院中可真熱鬧,春花似錦平项、人聲如沸赫舒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽接癌。三九已至心赶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缺猛,已是汗流浹背缨叫。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荔燎,地道東北人耻姥。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像有咨,于是被迫代替她去往敵國(guó)和親琐簇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法摔吏,類相關(guān)的語法鸽嫂,內(nèi)部類的語法纵装,繼承相關(guān)的語法征讲,異常的語法,線程的語...
    子非魚_t_閱讀 31,631評(píng)論 18 399
  • 3.3 集合 一方面橡娄, 面向?qū)ο笳Z言對(duì)事物的體現(xiàn)都是以對(duì)象的形式诗箍,為了方便對(duì)多個(gè)對(duì)象的操作,就要對(duì)對(duì)象進(jìn)行存儲(chǔ)挽唉。另...
    閆子揚(yáng)閱讀 728評(píng)論 0 1
  • 集合類簡(jiǎn)介 為什么出現(xiàn)集合類?面向?qū)ο笳Z言對(duì)事物的體現(xiàn)都是以對(duì)象的形式塑顺,所以為了方便對(duì)多個(gè)對(duì)象的操作汤求,就要對(duì)對(duì)象進(jìn)...
    阿敏其人閱讀 1,417評(píng)論 0 7
  • Java集合框架 Java平臺(tái)提供了一個(gè)全新的集合框架⊙暇埽“集合框架”主要由一組用來操作對(duì)象的接口組成扬绪。不同接口描述...
    小石38閱讀 360評(píng)論 0 0
  • 早上出門,本來只有薄薄的雪帶著明媚的陽光裤唠,卻怎么也阻擋不了寒風(fēng)流進(jìn)我的全身挤牛。 下班路上,地面淺淺的水洼种蘸,沒有...
    璇凝兒閱讀 169評(píng)論 0 0