JAVA API-day03

A

日期操作

java中的时间使用标准库的Date表示,使用距离一个固定的点毫秒数表达一个特定的时间点。固定的时间点称为纪元(1970-1-1 00:00:00);
java.util.Date 类封装的日期及时间信息;
Date d=new Date();表示当前系统时间。
SimpleDateFormat:日期格式类:日期类和字符串格式之间转化
  format():将日期类型(Date)数据格式化为字符串(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          小时(24小时制)
h          小时(12小时制)
m          分钟                    m:1分钟;mm:01分钟
s          秒                      ss:02秒;s:2秒
a          am或者pm表示

Calendar类

java.Util.Calendar类用于封装日历信息,起主要作用在于其他方法对于时间分量可以运算。Calendar类是一个抽象类。获取Calendar类对象如下:
Calendar c=Clendar.getInstance():当前系统时间
月份 :             一月      二月      三月.....
Calendar.MONTH:     0        1          2.....
星期:                        星期天       星期一     星期二       星期三 ...
Calendar.DAY_OF_WEEK:          1          2          3            4 
通过Calendar设置日期:
Calendar c=Calendar.getInstance();
c.set.(Calendar.YEAR,2008);
c.set(Calendar.MONTH,Calendar.AUGUST);
C.set(Calendar.DATE,8);
getActualMaximum()获取给定日历字段的可能最大值
通过Calendar类获取时间分量:
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;
设置星期:
--如果当前日期是周日,那么设置的星期1-6日期往后推;
--如果当前日期不是周日,那么设置的星期小于当前的日期往前推,大于当前日期的往后推;如果是当前日期的不变。
c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
(所取日期为当前日期的所在的同一个星期)
增加或减少时间分量
c.add(Calendar.YEAR,-1);//时间往前减少一年
c.add(Calendar.MONTH,1);//时间往后加一个月
c.add(Calendar.DATE,3);//时间往后加3天

复合框架

Collection(集合):有两个子接口:List和set;List可重复集,set:不可重复集;
元素是否重复,取决于元素的eqauls方法比较的结果;
Collection list=new Array.List();
boolean add(E e):用于添加元素;
集合中储存的都是引用类型的元素,并且集合只保存每个对象的引用,而并非将元素对象存入集合中。
boolean contains(Object o);该方法用于判定元素是否包含在该集合中,若包含返回true,反之返回false
[元素是否包含在集合中以equals比较结果决定。]
size();用于返回当前集合中的元素总数
clear();清空集合中的元素
isEmpty():该方法用于判断当前集合是否为空;如果为空则返回true,反之返回flase
remove();删除集合中的元素
get():获取集合中的元素[List方法才能使用]
boolean addAll(Collection c);把传入的集合元素添加到当前集合。
    --List:有序可重复的;ArrayList()
    --Set:无序不可重复的;HashSet()
重复性:是由集合中元素equals方法决定。
迭代器:Itertor:迭代器用于遍历集合元素,如果想通过迭代器遍历元素,首先要把集合转化为迭代对象:Iterator  iterator();
Iterator有两个常用方法:
--boolean hasNext();判断集合中是否还有元素可遍历;
--next():返回迭代对象;
Iterator的remove()方法:从集合中删除next()获得的元素。在使用迭代器遍历集合时,不能通过集合的remove()方法删除否则会抛出异常。但是可
以通过迭代器自身提供的remove()方法删除next()迭代出的元素
  注意:1、迭代器的删除方法是在原集合中删除元素
       2、在调用remove()方法前必须通过next()方法迭代过元素,那么删除的就是这个元素。并且不能再次调用remove()方法,除非再next()
          后方可以调用
增强型for循环:for(元素类型 变量:集合(数组)){}增强型for循环并非新的语法,而是在编译过程中,编译器会将该训话转换为迭代器模式,所以该
循环本质上是迭代器
如:
Set<String> s=new HashSet<String>();
for(String str:s){
     System.out.println(str);
}
泛型机制:java泛型机制广泛的应用到集合框架中,所有的集合类型都带有泛型参数,这样在创建集合是可以指定放入集合中元素的类型。java编译器可以根
据此类型检查,这样可以减少代码在运行时出现错误的可能性
集合操作---线性表
  List接口是Collection接口的子接口,用于定义线性表数据结构;可以将List理解为存放对象的数组,只不过元素个数可以动态的增加和减少
  1)List接口有两个常见的实现类:ArrayList(动态数组)和LinkedList(链表)。两种实现类的方法逻辑上完全一样,但性能是有一些差别的;
 ArrayList更适合随机访问;LinedList更适合添加和删除,但是在性能要求不是很苛刻的情况下,是可以忽略这个差别的。
  2)较Collection接口List所独有的方法:
      --E get(int index):获取集合中指定下标对应的元素,下标是从零开始。
      --E add(int index,E elment):将给定元素插入到指定位置,原来位置及后续元素都顺序向后移动。
      --E set(int index,E elment):(替换功能)将给定的元素存入指定位置,并将原位置的元素返回。
      --E remove(int index):删除给定位置的元素,并把被删除的元素返回。
      --List subList(int begin,int end):用于获取List集合的子集合
      注:由于集合中存放的是对像的地址,subList()获取的是集合中对象的地址; 所以当对子集合或者原集合的修改都会影响到子集合和原集合彼此。
List转换为数组:Collection接口有一个方法:toArray();作用:把集合转化为数组
如:Object[] arr=list.toArray();
String[] arr1=l.toArray(new String[]{});
数组转换为集合:static asList():Arrays类的静态方法:把数组转换为集合
如:list=Arrays.asList(arr);
集合转换为数组时(toArray()):对转换后的数组做增删改的时候,不会抛出异常;
数组转换为集合时(asList()):对转换后的集合做增删操作的时候会抛出异常;而做修改的时候不会抛出异常,但会对元数组产生影响。

List排序

对集合中的元素排序可以用工具类Collections.sort()方法,进行排序;那么两个元素对象之间就一定要有大小之分,如何界定的?使用Collections的
sort排序的集合元素必须是实现了Comparable接口的实现类。该接口表示其子类是可以比较,因为实现该接口需要重写一个方法:
  ---int compareTo(T t);该方法用于使用当前与给定对象比较。
    --如果当前对象大于给定对象,那么返回值应为>0的整数;
    --如果当前对象小于给定对象,那么返回值应为<0的整数;
    --如果当前对象等于给定对象,那么返回值应为=0的整数;
一旦java实现了Comparable接口,其逻辑就已经确定,如果希望在排序的操作中临时改变规则,可以采用Comparator接口实现。Comparator接
口也有一个需要重新定义的方法:
  int compare(T t1,T t2)该方法用于使两个给定对象比较。
    --如果t1对象大于t2对象,那么返回值应为>0的整数;
    --如果t1对象小于t2对象,那么返回值应为<0的整数;
    --如果t1对象等于t2对象,那么返回值应为=0的整数;

队列和栈:

  Queue:是一种数据结构,可以将队列看成一个特殊的线性表,队列限制了对线性表的一些访问方式;
队列遵循先进先出的原则:想队列中添加元素用方法:boolean offer(E e);
  从队列的另一端取元素方法:E poll():从队首删除并返回一个元素;E peek():返回队首的元素但并不删除。
   ---Queue的实现类是LinkedList;
          Queue<String> q=new LinkedList<String>();
--Deque:是队列的子接口,称为双端队列;如果将Deque限制只能从一端入队和出队,则就实现了栈的数据结构,对于栈而言:入栈称之
为push,出栈称为pop;实现类是LinkedList。
  1)push():向栈中添加元素;
  2)pop();获取栈中的元素。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,134评论 1 44
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,947评论 4 60
  • 1、everything 用来查找电脑里面的文件,特别方便!尤其当忘记了某个文件的路径啊、模糊搜索啊...的时候。...
    方少点_阅读 43评论 0 0
  • 2018年1月15,在西安出差,高效专注的开完了高校民主生活会议,长达5个小时,[得意]为自己高度的专注能力给一个...
    甄甄3353阅读 202评论 0 1