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