1. Collection接口
集合里面只能保存引用类型。
(存入的基本类型都自动装箱成封装类,instanceof)
集合能不能存储基本类型(值类型)?
List list = new ArrayList();
list.add(1);
1.1 集合框架的顶级接口
1.2 是Set和List的父接口
1.3 但不是Map的父接口
2. List接口
2.1 特点:有序、对象可以重复,可存放null
2.2 遍历方式
for下标
foreach(>=jdk1.5)
迭代器Iterator
2.3 List优化
初始容量10,容量变化的格式:当前容量3/2+1
指定初始容量
2.4 List接口的实现类
ArrayList 动态数组结构,查询快
LinkedList 双向链表结构,增删快
队列:先进先出(FIFO, First-In, First-Out)
Vector 老牌动态数组,容量变化的格式:旧容量2,安全,什么都慢
Stack 堆栈,后进先出(LIFO:Last-in,First-out),栈顶\压栈\弹栈
1.ArrayList的使用
1.1 数组:一组相同数据类型的固定长度的有序集合。
1.2 数组的长度固定,导致了集合的产生。
1.3 集合的底层就是数组,集合本质就是一个容器,存储数据,学习集合主要是学习如何在集合中做增删改查。
1.4 ArrayList:数组列表
a.集合的一种
b.引入System.Collections命名空间
c.Count属性获取元素长度
d.add(Object value)添加元素到末尾(装箱操作转换为Object)
e.removeAt(int index)删除指定下标的元素
f.remove(Object elm)删除指定对象
g.clear()清除所有元素
h.通过下标访问集合中的元素,语法和数组一样,需要拆箱
1.5 注意事项:
a.删除前排的元素后,后排元素的下标会动态改变,所以循环删除元素通常从后往前删
b.如果有多个相同元素,remove()方法只删除第一个
3. Collections类
集合框架工具类,提供一组静态方法操作Collection集合
3.1 排序
方式一:在实体类中实现Comparable,重写compareTo()
方式二:创建排序规则类,实现Comparator,重写compare()
3.2 反转 Collections.reverse()
3.3 交换 Collections.swap()
3.4 转数组 List.toArray()
4. Arrays类
数组工具类,提供了一组静态方法操作数组。
4.1 转集合 Arrays.asList()
//获取src根目录下的配置文件,绝对路径
InputStream is=TestUrl.class.getResourceAsStream("/db.properties");
//获取同一包下的配置文件,相对路径
InputStream is1=TestUrl.class.getResourceAsStream(“db.properties”);
Properties pro=new Properties();
//加载配置文件输入流
pro.load(is1);
//获取配置文件信息
System.out.println(pro.getProperty("username"));
System.out.println(pro.getProperty("password"));