1. 程式人生 > >Java中的日歷類/集合類/數學類/正則表達式/數組工具類等的常用方法與基本功能

Java中的日歷類/集合類/數學類/正則表達式/數組工具類等的常用方法與基本功能

calendar類和Data類 Collection類和List 正則表達式regex Math類和Random類 System類和Iterator類

一、 Arrays

針對數組操作的工具類,提供了一些針對數組排序和二分搜索的方法。
常用方法:
1、public static String toString(int[] a):將int類型的數組轉換成字符串。
轉換成字符串後輸出形式: ([元素1,元素2,元素3...]),Arrays在底層重寫了toString方法。
2、public static void sort(int[] a):對指定的 int 型數組按數字升序進行排序。
3、public static int binarySearch(int[] a,int key):二分搜索法,在數組a中查找key元素的索引。例如:
技術分享圖片

二、ObjectArray

對象數組,存儲對象的數組。
例如:
技術分享圖片

三、System類

System 類包含一些有用的類字段和方法,不能被實例化。
常用方法:
1、public static void gc():運行垃圾回收器。 實質是在執行finalize方法。
在自定的類中重寫finalize()方法:
技術分享圖片
在測試類中運行gc方法:
技術分享圖片

2、public static void exit(int status):終止當前正在運行的 Java 虛擬機。參數為狀態碼,若要終止jvm,參數為0。
常見狀態碼:404(http狀態碼,表示所請求的頁面不存在或已刪除)、500(服務器內部錯誤)、200(成功,表示服務器成功完成了請求)、302(進一步請求)。
3、public static long currentTimeMillis():返回以毫秒為單位的當前時間。

該方法單獨使用無意義,一般用來測試一段代碼的執行效率。
4、public static void arraycopy(Object src,int srcPos, Object dest,int destPos, int length):從指定源數組中復制一個數組,復制從指定的位置開始,到目標數組的指定位置結束。
其中src表示原數組,dest表示目標數組,srcPos 表示從原數組的哪個位置開始,destPos表示到目標數組的哪個位置結束,length表示長度。
例如:
技術分享圖片

四、Calendar類

1、概述:Calendar 類,日歷類,是一個抽象類。
2、功能:(1)為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉換提供方法;(2)為操作日歷字段(例如獲得下星期的日期)提供方法。

3、實例化方法:public static Calendar getInstance() :通過一個靜態功能來創建日歷對象,該方法使用默認時區與語言環境獲得一個日歷,返回的Calendar基於當前時間。
4、基本方法:
(1)public int get(int field)返回給定的日歷字段的值。
(2)public static final int YEAR獲取年。
(3)public static final int MONTH獲取月份。
(4)public static final int DATE :獲取月份中的一天。
5、常用方法:
(1)public abstract void add(int field,int amount)根據日歷規則,為給定的日歷字段添加或減去指定的時間量 。(常用)
(2)public final void set(int year, int month,int date)設置日歷字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
6、註意:在獲取當前日期輸出月份時,需給月份+1輸出。
例如:
技術分享圖片

五、Date類

1、概述:表示特定的瞬間,精確到毫秒。
2、構造方法:
(1)public Date()表示分配它的時間(精確到毫秒)。
(2)public Date(long date)創建一個日期對象,指定毫秒值。需要將long 時間毫秒值轉換成Date對象。
(3)public void setTime(long time)設置毫秒值。
3、常用方法:public long getTime()將Date對象轉換為long時間的毫秒值。
例如:
技術分享圖片
5、(重點)Date日期格式與文本格式之間的轉換
(1)格式化:日期格式(Date)→文本格式(String)。
方法:public final String format(Date date)
(2)解析:文本格式(String)→日期格式(Date)。(註意:simpleDateFormat在解析文本格式時,裏面模式一定要與文本模式一致,否則會出現異常ParseException)。
方法:public Date parse(String source)
(3)中間轉換類:DateFormat。DateFormat是一個抽象類,不能實例化,所以應該使用其子類SimpleDateFormat進行實例化。
(4)SimpleDateFormat ,一個以與語言環境有關的方式來格式化和解析日期的具體類,允許進行格式化、解析和規範化。其構造方法為:
public SimpleDateFormat(String pattern) :根據pattern(模式、規則)構造SimpleDateFormat對象。例如:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd")
(5)日期與時間模式:年(yyyy)、月(MM)、日(dd)、時(hh)、分(mm)、秒(ss)。
(6)例如:
技術分享圖片
(7)DateUtil:Sting與Date互相轉換的工具類。
例如:
定義DateUtil功能:
技術分享圖片
利用定義的DateUtil功能進行Date與String的互相轉換:
技術分享圖片

六、Math類

1、概述:包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數等。
2、JDK5的特性:靜態導入(導入方法的級別)。
3、常用方法:
(1)public static int abs(int a):絕對值
(2)public static double ceil(double a):向上取整
(3)public static double floor(double a):向下取整
(4)public static int max(int a,int b):求最大值
(5)public static int min(int a,int b):求最小值
(6)public static double pow(double a,double b):a的b次冪
(7)public static double random()返回帶正號的 隨機double 值,範圍[0.0,1.0)
(8)public static int round(float a):四舍五入
(9)public static double sqrt(double a):一個數的正平方根
4、位^特點:一個數據被另一個數據位^兩次,其值為本身。
常見面試題:用兩個變量a、b,用位^的方法,將其值互換:
技術分享圖片

七、Random類

1、概述:獲取隨機數的類。
2、構造方法:
(1)public Random():無參構造方法。
(2)public Random(long seed) :指定long類型的數據進行構造隨機數類對象。
3、常用方法:
(1)public int nextInt():獲取隨機數,範圍:int類型範圍之內。
(2)public int nextInt(int n):獲取隨機數,範圍:[0,n)。
4、例如:
技術分享圖片

八、正則表達式

1、基本語法:
(1)字符:
A、x x字符
B、\ 反斜線字符
C、\t 制表符
D、\n 換行符
E、\r 回車符
(2)字符類:
A、[abc] a、b 或 c
B、[^abc] 除了 a、b 或 c以外的任何字符(否定)
C、[a-zA-Z] a 到 z 或 A 到 Z(範圍)
(3)預定義字符類:
A、. 任何字符,如果本身就是“.”,則“. ”寫正則表達式時寫”\.”
B、\d 數字[0-9],寫正則表達式時寫“\d”
C、\w 單詞字符:[a-zA-Z_0-9](字母大小寫、數字字符)
(4)邊界匹配器:
A、^ 行的開頭
B、$ 行的結尾
C、\b 單詞邊界/尾
(4)(重點)Greedy 數量詞
A、X? X一次或一次也沒有
B、X* X零次或多次
C、X+ X一次或多次
D、X{n} X字符恰好出現n次
E、X{n,} X字符至少出現n次
F、X{n,m} X字符至少出現n次,但不超過m次
2、檢驗方法:public static boolean matches(String regex)
檢驗輸入數據是否和正則規則匹配,如果匹配成功則返回true。
例如:錄入一個以188開頭的手機號,由11個字符組成:
技術分享圖片

3、替換方法:public String replaceAll(String regex,String replacement)
使用給定的 replacement 替換此字符串所有匹配給定的正則表達式的子字符串。
例如:用“*”替換掉所有數字:
技術分享圖片

4、字符串分割功能:public String[] split(String regex)
按照指定的格式進行分割,分割後返回的是一個字符串數組。
例如:
技術分享圖片
5、模式和匹配器典型調用基本順序
常用方法:
(1)public static Pattern compile(String regex)將給定的正則表達式編譯到模式中
(2)Matcher matcher(String input)模式對象轉換成匹配器對象,即通過模式對象,構造一個匹配器對象。
例如:
技術分享圖片

九、Collection

1、數組與集合的區別(面試題):
(1)長度:數組長度固定,集合長度可變。
(2)內容:數組只能存儲同一種類型的元素,集合可以存儲多種類型的元素。
(3)存儲類型:數組可以存儲基本類型,也可以存儲引用類型, 集合只能存儲引用類型。
2、概述:Collection,層次結構中的根接口。Collection 表示一組對象,這些對象也稱為 collection 的元素。一些 collection 允許有重復的元素,而另一些則不允許。一些 collection 是有序的,一些是無序的。是抽象類,不能被實例化。
3、實例化:Collection c=new ArrayList()
4、添加功能:
(1)(基本功能)boolean add(Object e)添加元素。
(2)(高級功能)boolean addAll(Collection c)添加一個集合中的所有元素。
Boolean:只要添加即返回true。
5、刪除功能:
(1)(基本功能)void clear() :刪除集合中所有元素(暴力刪除)。
(2)(基本功能)boolean remove(Object o):刪除集合中的指定元素。
(3)(高級功能)boolean removeAll(Collection c)刪除一個集合中所有元素。
A、調用:c1.removeAll(c2),刪除c1中所有c2集合中的元素。
B、boolean:只要刪除一個元素即返回true,否則返回false。
6、包含功能:
(1)(基本功能)boolean contains(Object o)集合中是否包含指定的元素。
(2)(高級功能)boolean containsAll(Collection c)
A、調用:c1.containsAll(c2),c1集合中是否包含c2集合中的所有元素,
B、boolean:c1必須包含c2中的所有元素才能返回true。
7、獲取功能:(基本功能)int size()集合中的元素數。
8、交集功能:(高級功能)boolean retainAll(Collection c)
(1)調用:c1.retainAll(c2),c1集合對c2集合取交集,交集的元素在c1集合中。
(2)boolean:c1集合是否發生變化,若發生變化,返回true,否則返回false。
例如:
技術分享圖片

9、轉換功能:Object[] toArray() 將集合轉換成數組。
例如:
技術分享圖片
10、集合專有遍歷方式:叠代器遍歷,Iterator iterator()

十、Iterator

1、集合的叠代器方法:Iterator iterator():獲取集合的叠代器。
2、Iterator接口常用方法:
(1)boolean hasNext() :判斷是否有下一個元素可以叠代,若有返回true,否則返回false。
(2)Object next():返回叠代的下一個元素。
例如:
技術分享圖片
3、常見異常:java.util.NoSuchElementException 在沒有元素還繼續獲取的情況下出現該異常。
4、註意事項:
(1)it.next()一般情況下只使用一次即可,若使用多次,容易出現問題,it.next(),每使用一次都會返回一個對象。
(2)利用叠代器遍歷時,既可使用while循環,也可以使用for循環,其中while循環為模板代碼,經常使用,for循環很少使用。
5、Itr:Iterator的子實現類,一種匿名的內部類。
6、替代叠代器:增強for循環。
7、Collection兩個子接口:List,Set
(1)List集合特點:有序(存儲與取出一致),允許有重復元素。
(2)Set集合特點:無序(不能保證基於叠代的順序,基於HashMap),且元素不能重復。

十一、List

1、特點:有序(存儲與取出一致),允許有重復元素。
2、特有功能:
(1)添加功能:void add(int index,Object element)在指定位置處添加指定元素。
(2)獲取功能:A、Object get(int index)返回列表中指定位置的元素。
B、ListIterator listIterator():列表叠代器。
(3)刪除功能:Object remove(int index):刪除指定位置處的元素。
(4)修改功能:Object set(int index, Object element):用指定element元素替換掉指定位置處的元素。
3、List集合專有叠代遍歷:列表叠代器ListIterator listIterator()
4、ListIterator接口常用方法:
(1)boolean hasNext()判斷是否有下一個可以叠代的元素(正向遍歷)。
(2)Object next()獲取下一個元素。
(3)boolean hasPrevious()判斷是否有上一個可以叠代元素(逆向遍歷)。
(逆向遍歷前提:已存在正向遍歷,單獨使用無意義)。
(4)Object previous()返回上一個元素。
5、List集合的子實現類:
(1)ArrayList:底層數據結構式數組結構,查詢塊,增刪慢。內存方面,線程不安全的,不同步的,執行效率高。
(2)LinkedList:底層數據結構式鏈表結構,查詢慢,增刪塊。內存方面,線程不安全,不同步,執行效率高。
(3)Vector:線程安全的類,底層數據結構是數組,查詢快,增刪慢。內存方面,線程安全的,同步,執行效率低。

Java中的日歷類/集合類/數學類/正則表達式/數組工具類等的常用方法與基本功能