1 日期操作
/**
* Date:每一个实例用于表示一个确切的时间点,内部为一个long值,该值记录了从1970年1月1日00:00:00到某一时间点的毫秒值
* 1.默认构造方法表示的是到现在的时间值
* 2.long值可以使用,long值可以自定义修改
* 3 SimpleDateFormat()--->设置日期格式--->yyyy-MM-dd HH:mm:ss
* 4 Date--->String : String format(Date date);format方法将date的时间合适转化为SimpleDateFormat设置的格式
* String--->Date : Date Date parse(String str)--->将给定的字符串转化为simpleDateFormat()的格式,格式解析为一个Date对象
*Calender: 是一个抽象类,封装了对时间操作的效果(通常用来计算时间),采用的是公立;
* 1.是使用Calender(抽象类所以一定被子类所重写)的一个静态方法创建一个实例的:是在该地区的时区下创建一个相应的时间
* 2. 由于Calender的toString方法不友好,所以要转化为Date的形式,
* 而calender的getTime方法返回的是一个Date对象,则可以用此种方式来表示是时间
* (date的getTime是算的long型值得一个毫秒数,calender得getTime得到的是一个Date的类型时间)
* 3.Calender提供了设置不同时间分量的方法。
* 比如 void set(int field,int vaule)-->field是对应的年月日(有常量提供,只需写常量即可),vaule即为对印的值
* getActualMaximn()获取最大天数(该年/月)
* 4.Calender中的计算:void add(int field,int vaule)--->未指定时间分量加减值
* @author lei_l
*
*/
2 集合框架及集合操作
- 2.1 框架
/**
* 集合:比数组的好处,不用进行自己的比较,只需做出操作命令即可,且不用定义长度。
* (插入一个元素是数组需要多次比对并且自己进行元素的移位)
* 1.用于存储一组元素。提供维护集合的相关操作。
* 派生出两个子接口:
* list:可重复,有序集,与数组更像可以通过下标操作元素
* set:不可重复,大部分无序集
* 元素是否重复是看元素自身的equals方法比较的结果,长得是否像决定
* (equals比的是对象的内容,必须重写equals不然就是==)
* 2.集合使用规范:一般要求是存放同一类新的数据(不然每个都instancesOf的话太麻烦)
* 3.集合的方法:
* 3.1 int.size();<--->arr.length 返回集合元素的个数(不是返回长度,集合是可变的数组是定长的)
* 3.2 booelan isEmpty()--->判空
* 3.3 void clear()---->清空
* 3.4 boolean contains(E e)---->判断集合中是否有给定元素
* c.add(p);不用加进去就能比较,且集合用的是equals比较(像不像),不是==的是不是同一个对象 不重写就是怎么比较都是false
* 3.5 boolean remove(E e)---->删除与之相同的第一个元素
* 3.6 Boolean addAll(Connection c)---->合并元素。将一个中的元素添加到另一个元素中
* 3.7 boolean contains(E e)---->判断集合中是否包含所有给定的元素
* 3.8 boolean removeAll(E e)---->删除共有的元素
* 4 集合存放:存放的是元素引用的地址
* 5.迭代器:5.1 Collectin提供了统一的遍历集合元素的方法:迭代器模式:Iterator iterator()
* java.util.iterator是一个接口:规定了用于遍历集合相关方法,不需要记住相关的类的方法,只需记住他们是Iterator即可
* 5.2 遍历集合遵循:问hasnext,取next,删remove的步骤,其中删除不是必须操作
* 6.增强型for循环:for(String str : arry)----->即为迭代器。
* 被编译器所认识,而不是被虚拟机所认识。在编译的过程中就将其转化为迭代器的问,取。则不能试用集合引用来调用remove方法
*
* @author lei_l
*
*/
- 2.2 操作
/**
* 1 集合的操作——线性表(list):java.util.List (可有重复集,且有序)。
* set操作(用于元素的替换):E set(int index,E e)-->E表示list的泛型为什么。
* add操作(按位置插入一个元素):E add(int index,E e)
* sublist操作(截取一段元素):List subList(int strat.int end)-->对子集的修改就是对原集合的修改
* 常用的实现类:
* ArrayList:使用数组,便于查询遍历
* LinkList:使用链表,便于增删(首尾效果最明显)
* 2 集合转化为数组:toArray(new String[c.size()])-->创建的数组能用就用,不符合就创建一个类型一样的正好的数组
* 3 数组转为集合:数组只能转换为list集合(set集合不能存防重复元素)-->通过Arrays的aslist转化
* 增删不行,改查可以;
* 例如:list3.remove()就是在改原数组,二原数组不能改变定长的
* 如果想修改就重新创建一个list-->addAll合并
* 复制构造器:作用是在创建当前集合的同时将另一个集合中的元素赋值过来。
* (所有的集合都带有一个Collection类型参数的构造器)
* 4 集合排序:采用的是集合工具类Collection(collection是集合接口))的静态方法sort()
* 排序的要求:只能是List,因为大部分set都是无序的
*
* @author lei_l
*
*/
3 泛型
/**
* 泛型:又称参数化类型,可以将所有权支配给用户,使程序更加灵活可扩展。
* 1 原因:因为在制定的时候,如果固定一种类型-->程序不灵活。如果采用Object类型,每个都要强转,而且传的参数比较随意不是规定的类型。
* 2 形式 类名<T> T必须是引用类型
* 3 内容:泛型的原型就是Object-->泛型的定义使其是编译器帮我们验证,设值时验证是否合乎类型,获取时会自动转换
* 泛型的使用:泛型支持集合,集合约束泛型
* @author lei_l
*
*/