**********************************************************************
工具类 集合框架
**********************************************************************
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、