1. 程式人生 > >正則表達式與集合

正則表達式與集合

特性 基本 屬性 框架 正則表達式: 改變 雙向 不同 速度

正則表達式:
[]:匹配[]中的任意字符
{3,10}:前一個規則可以重復的次數,最少三次最多十次
{3,}:前一個規則最少出現三次,沒有上限限制
{3}:前一個規則只能出現三次,不能多也不能少
|:或者 (abc|123):abc、123; abc|123 :abc23、ab123.
匹配漢字:\u4e00-\u9fa5
+:等價於{1,} 最少出現一次,沒有上限
*:等價於{0,} 可以一次不出現,出現的話可以出現多次,沒有上限
. : 任意字符
?:等價於{0,1} 可以不出現,要出現只能出現一次
\d(\D):等價於[0-9]匹配數字 \D 非數字
\w(\W):等價於[a-zA-Z0-9_] 匹配合法標識符 \W非合法標識符
\s(\S):匹配空格和回車 \S為非空格和回車


字符串具有長度不可改變的特性,當對字符串做添加、刪除、替換時,不會更改字符串的內容,而是重新產生一個新的字符串對象

StringBuffer是緩沖區的對象,當對StringBuffer進行數據的添加、刪除、替換時不會產生新對象,直接更改stringBuffer的內容,所以StringBuffer可以解決String的不足

如果對字符串中的內容經常進行操作,特別是內容要體現時,那麽用StringBuffer,如果最後需要String,那麽StringBuffer中的toString方法即可。
StringBuffer會在緩沖區開辟一個空間,當對StringBuffer的內容做連接、替換、刪除時不會產生新對象
StringBuider是線程不安全的,StringBuffer是線程安全的
性能:StringBuider》StringBuffer》String


集合的特點:元素類型可以不同,集合長度可變,空間不固定
是java中對一些數據結構和算法進行了封裝即集合,集合也是一種對象,用於存儲、檢索、操作和傳輸對象
JCF(java collections framework)集合框架

集合和數組的差別:
1、數組創建後,長度不可改變,集合的長度會隨著元素的增加自動變長
2、數組中的元素只能存放單一數據類型,集合中的元素可以存放不同類型
3、集合中只能存放對象的引用,而數組中可以存放基本類型,也可以存放引用類型數據
4、集合中的算法比數組更加豐富

集合的API結構:
collection是list和set的父接口,另外還有一個map接口
list:線性,元素可以重復
set:元素不可以重復
map:鍵值對,一個元素可以存放兩個對象,其中鍵對象不可重復

list<String>稱為泛型,表示在集合中只能存放指定的類型,不是該類型的對象無法加入集合。

標準java Bean的規範
1、必須提共有的無參構造方法
2、私有的屬性加上一個get、set方法通過get、set方法對屬性進行訪問和修改
3、需要實現序列化接口
求長度
數組:lenght屬性
字符串:lenght方法
集合:size方法

list集合有三個常用的實現類
ArrayList:底層部分使用數組實現,遍歷速度快,中間插入和刪除元素速度慢,線程不安全
Vector:底層部分同樣使用數組實現,線程安全的類
LinkedList:采用雙向鏈表實現,元素的空間不連續。每個元素除了存放數據之外,還要存放上一個和下一個元素的地址,遍歷速度慢,中間插入、刪除元素速度快。

HashMap和HashTable的區別和聯系
1、HashMap和HashTable都是Map接口的實現類,一個元素可以存放兩個對象
2、HashMap允許存放空鍵和空值,而HashTable不允許存放空鍵和空值
3、HashMap線程不安全HashTable線程安全

正則表達式與集合