Date、集合框架
Date、集合框架
1 Date及其常用API
1.1 Java中的时间
Java中的时间使用标准类库的Date类表示,是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点;
固定的时间点叫纪元(epoch),是UTC时间1970年1月1日 00:00:00;
UTC(Universal Time Coordinated世界调整时间)与GMT(Greenwich Mean Time 格林威治时间)一样,是一种具有实际目的的科学标准时间。
1.2 Date类简介
java.util.Date类封装日期及时间信息。
Date类的大多数用于进行时间分量计算的方法已经被Calendar取代。
setTime和getTime方法
Date重写toString方法
Date重写了toString()方法,用一个字符串来描述当前Date对象所表示的时间。格式如下:
1.3 SimpleDateFormat
java.text.SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
构造器
方法
日期模式匹配字符
将String解析为Date
2 Calendar
2.1 Calendar简介
java.util.Calendar类用于封装日历信息,其主要作用在于其方法可以对时间分量进行计算;
Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高里厉,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。
2.2 getInstance方法
Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象;
Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化:
2.3 日期及时间分量操作
设置日期及时间分量
获取日期及时间分量
使用Calendar提供的get方法及一些常量可以获取日期及时间分量
static int YEAR 指示年份的字段数字
static int MONTH 指示月份的字段数字
static int DATE 指示一个月份中的第几天
static int DAY_OF_WEEK指示一个星期中的某天,1为星期日
getActualMaximum方法
int getActualMaximum(int field) 给定此Calendar的时间值,返回指定日历字段可能拥有的最大值:
add方法
void add(int field, int mount) 为给定的时间分量的值加上给定的值,若给定的值为负数则是减去给定的值:
setTime与getTime方法
Date getTime() 使用Date描述Calendar表示的日期并返回
void setTime(Date d) 使Calendar表示Date所描述的日期
3 集合框架
3.1 Collection
在实际开发中,需要将使用的对象存储于特定数据结构的容器中,JDK提供了这样的容器——集合(Collection)。
Collection是一个接口,定义了集合相关的操作方法,其有两个子接口:List和Set。
集合中存储的都是引用类型元素,并且集合只保存每个元素对象的引用,而并非将元素对象本身存入集合。
3.2 常用API
add方法
Collection定义了一个add方法用于向集合中添加新元素。
— boolean add(E e)
该方法会将给定的元素添加进集合,若添加成功则返回true,否则返回false。
在这里插入图片描述
contains方法
boolean contains(Object o)
该方法会用于判断给定的元素是否被包含在集合中。若包含则返回true,否则返回false。
需要注意的是,集合在判断元素是否被包含在集合中是根据每个元素的equals()方法进行比较后的结果,通常有必要重写equals()保证contains()方法的合理结果。
size、clear、isEmpty
int size() 该方法用于返回当前集合中的元素总数。
void clear() 该方法用于清空当前集合。
boolean isEmpty() 该方法用于判断当前集合中是否不包含任何元素
addAll、containsAll
boolean addAll(Collection<? extends E> c)
该方法需要我们传入一个集合,并将该集合中的所有元素添加到当前集合中。
如果此collection用于调用而发生更改,则返回true。
boolean containsAll(Collection<? extends E> c)
该方法用于判断当前集合是否包含给定集合中的所有元素,若包含则返回true。
3.3 Iterator
hasNext、next方法
迭代器用于遍历集合元素。获取迭代器可以使用Collection定义的方法:
— Iterator iterator()
迭代器Iterator是一个接口,集合在重写Collection的iterator()方法时利用内部类提供了迭代器的实现。
Iterator提供了统一的遍历集合元素的方式,其提供了用于遍历集合的两个方法:
— boolean hasNext():判断集合是否还有元素可以遍历。
— E next():返回迭代的下一个元素。
remove方法
在使用迭代器遍历集合时,不能通过集合的remove方法删除集合元素,否则会抛出并发更改异常。我们可以通过迭代器自身提供的remove()方法来删除通过next()迭代出的元素。
— void remove()
迭代器的删除方法是在原集合中删除元素。
需要注意的是,在调用remove方法前必须通过迭代器的next()方法迭代过元素,那么删除的就是这个元素。并且不能再次调用remove方法,除非再次调用next()后方可再次调用。
增强型for循环
Java 5.0之后推出了一个新的特性,增强for循环,也称为新循环。该循环不同于传统循环的工作,其只用于遍历集合或数组。
语法:
新循环并非新的语法,而是在编译过程中,编译器会将新循环转换为迭代器模式。所以新循环本质上是迭代器。
3.4 泛型机制
泛型是Java SE 5.0引入的特性,泛型的本质是参数化类型。在类、接口和方法的定义过程中,所操作的数据类型被传入的参数指定。
Java泛型机制广泛的应用在集合框架中。所有的集合类型都带有泛型参数,这样在创建集合时可以指定放入集合中元素的类型。Java编译器可以据此进行类型检查,这样可以减少代码在运行时出现错误的可能性。
ArrayList类的定义中,中的E为泛型参数,在创建对象时可以将类型作为参数传递,此时,类定义所有的E将被替换成传入的参数:
本文地址:https://blog.csdn.net/cyk1999/article/details/111998015