java常用的集合对象_java常用实体类、集合类
java常用實(shí)體類、集合類
[轉(zhuǎn)自51cto博客jichangwei的BLOG]
1:String類,字符串是常量,他們的值在創(chuàng)建之后不能更改,可以共享。
equals()用來比較兩個(gè)字符串的值,==只有當(dāng)這兩個(gè)實(shí)例指向同一個(gè)字符串對(duì)象才返回true
2:線程安全的可變字符串類StringBuffer,主要操作是append()和insert()。
3:可變字符串類StringBuilder,不保證同步,用在字符串緩存區(qū)被單個(gè)線程使用的時(shí)候,比StringBuffer快。
三者的使用情況:
a)如果偶爾對(duì)剪子的字符串常量進(jìn)行拼接,那么可以使用String,他足夠簡(jiǎn)單而且輕量級(jí)。
b)如果需要經(jīng)常對(duì)字符串進(jìn)行拼接、累加操作,使用StringBuffer或者StringBuilder
c)單線程使用StringBuilder,他比StringBuffer快,多線程中選后者,他是線程安全的。
4:集合類Collection,代表多個(gè)對(duì)象的集合,分為
a)Queue類:隊(duì)列類,先進(jìn)先出的隊(duì)列
b)List類,列表類,元素有序,且允許重復(fù)
c)Set類,集合類,元素可以有序也可以無序,不允許重復(fù)。
映射類Map:存儲(chǔ)多個(gè)鍵值對(duì)。
5:Collections與Collection的區(qū)別:前者是對(duì)后者集合類進(jìn)行各種操作的服務(wù)類。
a)Collection是個(gè)java.util下的接口,它提供了對(duì)集合對(duì)象進(jìn)行基本操作的通用接口方法,collection接口在java類庫中有很多具體的實(shí)現(xiàn),它的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。
b)conllections是個(gè)java.util下的實(shí)體類,它包含各種有關(guān)集合操作的靜態(tài)方法,提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各個(gè)集合的搜索、排序、線程安全化等操作,就像一個(gè)工具類,服務(wù)于java的Collection框架。
6:列表類List
a)LinkedList鏈?zhǔn)皆L問,以指針相連,適合于在鏈表中間需要頻繁進(jìn)行插入和刪除操作。
b)ArrayList類似數(shù)組的形式,按照序號(hào)存儲(chǔ),隨機(jī)訪問速度非常快。
c)Vector向量按照各元素序號(hào)存儲(chǔ),數(shù)組大小可以動(dòng)態(tài)增長(zhǎng),對(duì)于大容量數(shù)據(jù)存儲(chǔ)效率較高。
d)Stack堆棧,先進(jìn)后出的數(shù)組。
7:這些類的對(duì)比與選擇:
如果涉及到堆棧隊(duì)列等操作,應(yīng)該考慮List中的stack,queue
對(duì)于需要快速插入刪除元素,應(yīng)該使用linkedlist
如果需要快速隨機(jī)訪問元素,應(yīng)該選用arraylist
如果程序在單線程環(huán)境中,選用非同步類
如果在多線程中,選用同步類vector、stack和hashtable以及其子類。
8:map選擇
hashtable和hashmap類似,但是hashtable是同步的,但是hashmap允許null來作為key和value值。
weakhashmap是一種改進(jìn)的hashmap,他對(duì)key進(jìn)行弱引用,如果一個(gè)key不再被外部引用,則被gc回收。
總結(jié)
以上是生活随笔為你收集整理的java常用的集合对象_java常用实体类、集合类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一部老电影
- 下一篇: java nio设计模式_Java NI