android学习札记第5章之日期javaapi4及集合初步
an蟠校盯昂droid应用中时间处处可见,而开发中JAVA API日期类也是经常用到的,这节会讲解日期类Date的吹涡皋陕用法,还有对日期提供运算方法的Calender日历类。另外,还会开始集合的讲解,首先会降到java.util包下的双向链表数据结构LinkedList,LinkedList相比另一种列表集合ArrayList来说,对列表的操作胜于ArrayList,但对于查询来说就比较差了,因为每次查询都会从头查询,不过LinkedList可以从两端查询,效率还是比较高的。集合工具集(数据结构工具)就是存储数据的,但对于集合还是要有一个整体的框架的,如图可以看到集合中各个接口和类的关系。注:名词——数据结构:按特定结构,来存储一组数据。
工具/原料
JDK、eclipse、android SDK、ADT
一、JAVA API之日期类java.util.Date
1、①封装了一个毫秒值(时间戳):从1970-1-1开始。用这个毫秒值来表示一个时间点。 ②创建对象:方法一: Date date=new Date();//表示当前时间方法二: Date date=new Date(600000000000L);//表示指定时间
2、Date的方法:setTime(long time):设置内部封装的毫秒值getTime():获得内部封装的毫秒值compare(Date date):当前日期与指定日期比较大小,大返回true,小返回false,相等返回0。
二、JAVA API之日期格式化类java.text.SimpleDateFormat
1、①日期格式工具:用于格式化日期,更利于用户体验。 ②创建对象: Date对象->字符串 SimpleDateFormat sdf=new SimpleDateFormat(格式字符串);
2、SimpleDateFormat的方法 format(Date date):将Date对象格式化字符串 parse():将字符串解析成Date对象 applyPattern():修改格式字符串
三、JAVA API之日历类java.util.Calender
1、①日历是抽象父类,表示时间点,提供一组日期运算方法 ②创建对象: Calendar c=new GregorianCalender();//java.util.GregorianCalendar表示罗马历、公历、阳历的当前时间,是Calender的子类,重写了父类的方法。 Calendar c=Calendar.getInstance();//获得实例,返回当地历法,表示当前时间
2、Calendar的方法: get(字目愿硅囫段):获得日期中指定字段的值,如:c.get(Calendar.YEAR);//月份从0开始 s髫潋啜缅et(字段,值):修改指定字段的值 set(int year,int month,int date,int hour,int min,int s): add(int field,int value):在指定字段上加value值 compareTo(Calendar anotherCalendar):比较大小 getActualMaximum(int field):获得指定字段的实际最大值,通常用来获得月中的最大天数 Date getTime():返回Date时间 setTime(Date date):设置时间 setTimeInMillis():设置时间戳 getTimeInMillis(long mills):获得时间戳星期的常量:星期日~星期六(1~7)
四、JAVA API之集合双向链表数据结构java.util.LinkedList
1、集合LinkedList是双向链表数据结构: 访问两端比中间效率高,遍历查询时效率不高,使用迭代器效率高,适合插入修改时使用。创建对象:LinkedList list=new LinkedList();
2、LinkedList的方法: add(数据):添加数据 罕铞泱殳 add(int index,数据):在指定位置添加数据 艘早祓胂 addFirst(数据): addLast(数据): getFirst(): getLast(): removeFirst():移除第一个数据并返回这个数据 removeLast(): 先入先出(队列操作): offer(数据):添加数据 peek():访问数据 poll():移除数据 后入先出(栈操作): push():压入数据 pop():弹出数据 get(int index):获得指定位置的值 contains(数据):判断列表中是否存在与数据相等的数据 set(int index,数据):替换数据,返回原来的值。 size():数据的数量 remove(int index):移除指定位置的元素,返回被移除的数据,默认移除第一个数据。 boolean remove(数据):移除与指定数据相等的数据,返回boolean,只移除第一个数据。 clear():清空数据 iterator():迭代器遍历效率高 Iterator<String> it=list.iterator(); while(it.hasNext()){ System.out.print(it.next()+" "); }
五、练习
1、输入生日,显示“您已经生存了xx天”。
2、输入年、月,显示当月的日历。
3、输入n,求第n个丑数。(丑数定义:被3,5,7整除多次后结果为1)思路:方法一:分别把3、5、7放入LinkedList集合,然后循环所输入数之内的所有数字,选出3个集合的最小值并移除,再将最小值分别和3、5、7相乘并放入3个集合末尾,循环1次,当前的最小值即为第一个丑数,循环n次,第n次循环所得的最小值即为第n次丑数。方法二:从i=3开始循环每个值都依次跟3、5、7相除,如果最后除得的结果等于1,判断是丑数,并i++,循环1次,然后设置count++计数,第1个丑数就是3;如果循环n次,第n个丑数就是count。
4、算式计算(输入算式,计算结果):(PS:涉及面向对象、内部类、字符串处理、正则表达式、大数字对象)