T5 s3 day16

**********************************************************************
工具类 集合框架
**********************************************************************
1、作业
截取字符串(String str,int begin ,int count)
复习:subString(int index) 从指定索引位置开始截取,截取到最后
subString(int begin,int end)
时间:
1、获取两个时间段的时间差值:


System.currentTimeMills();
2、显示时间 yyyy-MM-dd hh:mm:ss SSS


Date dt=new Date();
DateFormat df= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS");
String str= df.format(dt);
3、日历 Calendar


Calendar c= Calendar.getInstance(); 得到日历对象
常量:Calendar.YEAR
从日历对象中获取年 月 日 小时 分
c.get(Calendar.YEAR); 获取当前日历时间中的年份
c.get(Calendar.MONTH); 获取月份 从0开始

设置日历的时间
c.setTime(Date);
//单独设置 年 月 日
c.set();
getTimeInMillis() 获取

c.add(添加什么,添加多少) 添加时间点
ca.add(Calendar.HOUR, 7*24)

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
Random Object
java集合框架:
技术的发展过程
变量 数组 集合框架
数组的缺点:长度固定
存储的内容,长度是无法固定

集合框架:相当于动态长度的数组
两种类型集合:
1、Collection 接口
1.1 List 集合
1.2 set 集合
1.3 queue 集合

2、Map

List 接口
存放数据的特点:

1、有序 先后顺序
2、元素值可以重复
List实现类:


ArrayList: 数组列表,内存空间连续
Vector:   同ArrayList,线程安全
LinkedList:   链表,内存空间不连续

一、ArrayList:数组列表,内存空间连续
长度:动态
使用场合:查找遍历操作频繁时,效率高
频繁插入、删除操作时,效率低
属于“宽进严出”,存任何元素进入集合中,都转换成Object,那么取元素时需要强制转换
ArrayListDemo

方法:
size() 长度
add()追加


for(类型 循环变量: 数组或集合){

}
【说明】
1、循环变量的类型取决于数组或集合
2、循环原理:依次取出数组或集合中的数据给循环变量,当都取过后,循环结束

二、Vector
功能同ArrayList相同,线程安全的,效率比ArrayList要低
VectorDemo


ArrayList 适合于遍历操作,不适用于频繁的插入、删除

三、LinkedList 链表
内存空间不连续,遍历效率低
第一个元素 还存放了第二个元素的地址,以此类推,最后一个元素地址null
插入、删除时,效率高
LinkedListDemo

练习:创建LinkedList集合,添加若干元素,通过循环删除所有元素
删除后,遍历输出

List接口的方法:
add()
add(索引,元素)
addAll()
addAll(索引,集合)
size()
get(索引)
remove(索引)
remove(Object)
removeAll(集合)
clear()

常见面试题:
1、ArrayList 和Vector的区别
2、ArrayList 和 LinkedList的区别
List接口存放数据的特点:
有先后顺序
不唯一

作业:
汽车租赁系统
面向对象设计程序:
轿车 租金:10天以内 日租金*天数
卡车
摩托车

计算租金

要求:
两个集合
一:可以出租的车辆
二:已租出车辆

1、遍历输出所有车辆
2、输入要租用的车牌号 租赁天数
3、

原文地址:https://www.cnblogs.com/wxcsz/p/10685615.html