java临时的api,JAVA API-day03
A
日期操作
java中的時(shí)間使用標(biāo)準(zhǔn)庫(kù)的Date表示,使用距離一個(gè)固定的點(diǎn)毫秒數(shù)表達(dá)一個(gè)特定的時(shí)間點(diǎn)。固定的時(shí)間點(diǎn)稱為紀(jì)元(1970-1-1 00:00:00);
java.util.Date 類封裝的日期及時(shí)間信息;
Date d=new Date();表示當(dāng)前系統(tǒng)時(shí)間。
SimpleDateFormat:日期格式類:日期類和字符串格式之間轉(zhuǎn)化
format():將日期類型(Date)數(shù)據(jù)格式化為字符串(String)。Date-->String
parse();將字符串類型(java.lang.String)解析為日期類型(java.util.Date)。String-->Date
日期模式匹配字符
字符 含義 示例
y 年 yyyy年(2013年);yy年(13年)
M 月 MM月(02月);M月(2月)
d 日 dd日(06日);d日(6日)
E 星期 E--星期日(sun)
H 小時(shí)(24小時(shí)制)
h 小時(shí)(12小時(shí)制)
m 分鐘 m:1分鐘;mm:01分鐘
s 秒 ss:02秒;s:2秒
a am或者pm表示
Calendar類
java.Util.Calendar類用于封裝日歷信息,起主要作用在于其他方法對(duì)于時(shí)間分量可以運(yùn)算。Calendar類是一個(gè)抽象類。獲取Calendar類對(duì)象如下:
Calendar c=Clendar.getInstance():當(dāng)前系統(tǒng)時(shí)間
月份 : 一月 二月 三月.....
Calendar.MONTH: 0 1 2.....
星期: 星期天 星期一 星期二 星期三 ...
Calendar.DAY_OF_WEEK: 1 2 3 4
通過Calendar設(shè)置日期:
Calendar c=Calendar.getInstance();
c.set.(Calendar.YEAR,2008);
c.set(Calendar.MONTH,Calendar.AUGUST);
C.set(Calendar.DATE,8);
getActualMaximum()獲取給定日歷字段的可能最大值
通過Calendar類獲取時(shí)間分量:
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH)+1;
int day=c.get(Calendar.DATE);
int week=c.get(Calendar.DAY_OF_WEEK)-1;
設(shè)置星期:
--如果當(dāng)前日期是周日,那么設(shè)置的星期1-6日期往后推;
--如果當(dāng)前日期不是周日,那么設(shè)置的星期小于當(dāng)前的日期往前推,大于當(dāng)前日期的往后推;如果是當(dāng)前日期的不變。
c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
(所取日期為當(dāng)前日期的所在的同一個(gè)星期)
增加或減少時(shí)間分量
c.add(Calendar.YEAR,-1);//時(shí)間往前減少一年
c.add(Calendar.MONTH,1);//時(shí)間往后加一個(gè)月
c.add(Calendar.DATE,3);//時(shí)間往后加3天
復(fù)合框架
Collection(集合):有兩個(gè)子接口:List和set;List可重復(fù)集,set:不可重復(fù)集;
元素是否重復(fù),取決于元素的eqauls方法比較的結(jié)果;
Collection list=new Array.List();
boolean add(E e):用于添加元素;
集合中儲(chǔ)存的都是引用類型的元素,并且集合只保存每個(gè)對(duì)象的引用,而并非將元素對(duì)象存入集合中。
boolean contains(Object o);該方法用于判定元素是否包含在該集合中,若包含返回true,反之返回false
[元素是否包含在集合中以equals比較結(jié)果決定。]
size();用于返回當(dāng)前集合中的元素總數(shù)
clear();清空集合中的元素
isEmpty():該方法用于判斷當(dāng)前集合是否為空;如果為空則返回true,反之返回flase
remove();刪除集合中的元素
get():獲取集合中的元素[List方法才能使用]
boolean addAll(Collection c);把傳入的集合元素添加到當(dāng)前集合。
--List:有序可重復(fù)的;ArrayList()
--Set:無(wú)序不可重復(fù)的;HashSet()
重復(fù)性:是由集合中元素equals方法決定。
迭代器:Itertor:迭代器用于遍歷集合元素,如果想通過迭代器遍歷元素,首先要把集合轉(zhuǎn)化為迭代對(duì)象:Iterator iterator();
Iterator有兩個(gè)常用方法:
--boolean hasNext();判斷集合中是否還有元素可遍歷;
--next():返回迭代對(duì)象;
Iterator的remove()方法:從集合中刪除next()獲得的元素。在使用迭代器遍歷集合時(shí),不能通過集合的remove()方法刪除否則會(huì)拋出異常。但是可
以通過迭代器自身提供的remove()方法刪除next()迭代出的元素
注意:1、迭代器的刪除方法是在原集合中刪除元素
2、在調(diào)用remove()方法前必須通過next()方法迭代過元素,那么刪除的就是這個(gè)元素。并且不能再次調(diào)用remove()方法,除非再next()
后方可以調(diào)用
增強(qiáng)型for循環(huán):for(元素類型 變量:集合(數(shù)組)){}增強(qiáng)型for循環(huán)并非新的語(yǔ)法,而是在編譯過程中,編譯器會(huì)將該訓(xùn)話轉(zhuǎn)換為迭代器模式,所以該
循環(huán)本質(zhì)上是迭代器
如:
Set s=new HashSet();
for(String str:s){
System.out.println(str);
}
泛型機(jī)制:java泛型機(jī)制廣泛的應(yīng)用到集合框架中,所有的集合類型都帶有泛型參數(shù),這樣在創(chuàng)建集合是可以指定放入集合中元素的類型。java編譯器可以根
據(jù)此類型檢查,這樣可以減少代碼在運(yùn)行時(shí)出現(xiàn)錯(cuò)誤的可能性
集合操作---線性表
List接口是Collection接口的子接口,用于定義線性表數(shù)據(jù)結(jié)構(gòu);可以將List理解為存放對(duì)象的數(shù)組,只不過元素個(gè)數(shù)可以動(dòng)態(tài)的增加和減少
1)List接口有兩個(gè)常見的實(shí)現(xiàn)類:ArrayList(動(dòng)態(tài)數(shù)組)和LinkedList(鏈表)。兩種實(shí)現(xiàn)類的方法邏輯上完全一樣,但性能是有一些差別的;
ArrayList更適合隨機(jī)訪問;LinedList更適合添加和刪除,但是在性能要求不是很苛刻的情況下,是可以忽略這個(gè)差別的。
2)較Collection接口List所獨(dú)有的方法:
--E get(int index):獲取集合中指定下標(biāo)對(duì)應(yīng)的元素,下標(biāo)是從零開始。
--E add(int index,E elment):將給定元素插入到指定位置,原來位置及后續(xù)元素都順序向后移動(dòng)。
--E set(int index,E elment):(替換功能)將給定的元素存入指定位置,并將原位置的元素返回。
--E remove(int index):刪除給定位置的元素,并把被刪除的元素返回。
--List subList(int begin,int end):用于獲取List集合的子集合
注:由于集合中存放的是對(duì)像的地址,subList()獲取的是集合中對(duì)象的地址; 所以當(dāng)對(duì)子集合或者原集合的修改都會(huì)影響到子集合和原集合彼此。
List轉(zhuǎn)換為數(shù)組:Collection接口有一個(gè)方法:toArray();作用:把集合轉(zhuǎn)化為數(shù)組
如:Object[] arr=list.toArray();
String[] arr1=l.toArray(new String[]{});
數(shù)組轉(zhuǎn)換為集合:static asList():Arrays類的靜態(tài)方法:把數(shù)組轉(zhuǎn)換為集合
如:list=Arrays.asList(arr);
集合轉(zhuǎn)換為數(shù)組時(shí)(toArray()):對(duì)轉(zhuǎn)換后的數(shù)組做增刪改的時(shí)候,不會(huì)拋出異常;
數(shù)組轉(zhuǎn)換為集合時(shí)(asList()):對(duì)轉(zhuǎn)換后的集合做增刪操作的時(shí)候會(huì)拋出異常;而做修改的時(shí)候不會(huì)拋出異常,但會(huì)對(duì)元數(shù)組產(chǎn)生影響。
List排序
對(duì)集合中的元素排序可以用工具類Collections.sort()方法,進(jìn)行排序;那么兩個(gè)元素對(duì)象之間就一定要有大小之分,如何界定的?使用Collections的
sort排序的集合元素必須是實(shí)現(xiàn)了Comparable接口的實(shí)現(xiàn)類。該接口表示其子類是可以比較,因?yàn)閷?shí)現(xiàn)該接口需要重寫一個(gè)方法:
---int compareTo(T t);該方法用于使用當(dāng)前與給定對(duì)象比較。
--如果當(dāng)前對(duì)象大于給定對(duì)象,那么返回值應(yīng)為>0的整數(shù);
--如果當(dāng)前對(duì)象小于給定對(duì)象,那么返回值應(yīng)為<0的整數(shù);
--如果當(dāng)前對(duì)象等于給定對(duì)象,那么返回值應(yīng)為=0的整數(shù);
一旦java實(shí)現(xiàn)了Comparable接口,其邏輯就已經(jīng)確定,如果希望在排序的操作中臨時(shí)改變規(guī)則,可以采用Comparator接口實(shí)現(xiàn)。Comparator接
口也有一個(gè)需要重新定義的方法:
int compare(T t1,T t2)該方法用于使兩個(gè)給定對(duì)象比較。
--如果t1對(duì)象大于t2對(duì)象,那么返回值應(yīng)為>0的整數(shù);
--如果t1對(duì)象小于t2對(duì)象,那么返回值應(yīng)為<0的整數(shù);
--如果t1對(duì)象等于t2對(duì)象,那么返回值應(yīng)為=0的整數(shù);
隊(duì)列和棧:
Queue:是一種數(shù)據(jù)結(jié)構(gòu),可以將隊(duì)列看成一個(gè)特殊的線性表,隊(duì)列限制了對(duì)線性表的一些訪問方式;
隊(duì)列遵循先進(jìn)先出的原則:想隊(duì)列中添加元素用方法:boolean offer(E e);
從隊(duì)列的另一端取元素方法:E poll():從隊(duì)首刪除并返回一個(gè)元素;E peek():返回隊(duì)首的元素但并不刪除。
---Queue的實(shí)現(xiàn)類是LinkedList;
Queue q=new LinkedList();
--Deque:是隊(duì)列的子接口,稱為雙端隊(duì)列;如果將Deque限制只能從一端入隊(duì)和出隊(duì),則就實(shí)現(xiàn)了棧的數(shù)據(jù)結(jié)構(gòu),對(duì)于棧而言:入棧稱之
為push,出棧稱為pop;實(shí)現(xiàn)類是LinkedList。
1)push():向棧中添加元素;
2)pop();獲取棧中的元素。
總結(jié)
以上是生活随笔為你收集整理的java临时的api,JAVA API-day03的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 编写方法和属性,编写一个关于教
- 下一篇: php sqlite3 sql,在PHP