小李的40天java历程——Day08(JSE)

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
 *
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值