1.ArrayList
容器的容量"capacity"会随着对象的增加,自动增长
只需要不断往容器里增加数据,不用担心会出现数组的边界问题
ArrayList实现了接口List
List heros = new ArrayList();
//常见的写法会把引用声明为接口List
//注意:是java.util.List,而不是java.awt.List
//接口引用指向子类对象(多态)
add增加
contains判断是否存在
get获取指定位置的对象
indexOf获取对象所处的位置
remove删除 set替换 size获取大小
toArray转换为数组
addAll把另一个容器所有对象都加进来
clear清除
2.泛型 Generic
不指定泛型的容器可以放种类不同的元素
指定泛型的容器只能放这一种类型的元素及其子类
List <hero>genericheros = new ArrayList<hero>();
List <hero> genericheros = new ArrayList()<>;
3.遍历容器的三种循环
<1>for
<2>iterator 迭代器
<3>增强for
4.LinkedList 实现了List和Deque(双向链表),Queue接口(队列)
ArrayList和LinkedList区别:
ArrayList 顺序结构,查找快,删除插入慢
LinkedList链表结构,查找慢,删除插入快
6.HashMap 储存数据的方式是—— 键值对,值可以重复键不能重复
7.HashSet 元素无序,严格的说,是没有按照元素的插入顺序排列,不能重复
Set不提供get()来获取指定位置的元素
所以遍历需要用到迭代器,或者增强型for循环
HashSet自身并没有独立的实现,而是在里面封装了一个Map.HashSet是作为Map的key而存在的
8.Collection与Collections
Collection是 Set List Queue和 Deque的接口
Collections是一个类,容器的工具类,就如同Arrays是数组的工具类
10.HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式
HashMap可以存放 null
Hashtable不能存放null
HashMap不是[线程安全的类]
Hashtable是线程安全的类
11.几种set
HashSet: 无序
LinkedHashSet: 按照插入顺序
TreeSet: 从小到大排序
12.比较器