集合框架
集合:容器 储存对象的对象 Object[]
接口特点
接口中的常用方法
遍历
实现类
Collection 接口 特点: 元素是Object
常用方法:
add(Object o):将o添加到集合中
addAll(Collection c):将集合c中所有的元素添加到集合中
clear() 清空集合
contains(Object o)判断集合中是否存在元素o
remove(Object o):在集合中删除元素o
size():返回集合的长度 元素的个数
toArray():将集合转成数组
遍历: 迭代
实现类:无
List 接口 特点:Collection的子接口 有顺序(有下标) 可以重复
常用方法:
add(int pos,Object o):把对象o添加到集合pos下标位置
get(int pos):返回pos下标的元素
indexOf(Object o):返回o在集合中的下标,如果不存在则返回-1
remove(int pos):删除pos位置的元素
set(int pos , Object o):将o设置在pos下标位置
遍历:
1) 下标遍历
2) 迭代遍历 for-each
实现类:
ArrayList 数组实现 查询快 增删慢 1.2 线程不安全 快
LinkedList 链表实现 查询慢 增删快
Vector 数组实现 1.0 线程安全 慢
Collections 工具类
reverse(List) 将list中的元素反转
shuffle(List) 将list中的元素随机排列
sort(List) 将list中的元素排序
为对象指定排序规则:对象必须实现 Comparable接口
Set接口 特点:Collection的子接口 无顺序(没有下标) 元素内容不可重复 唯一
常用方法:无
遍历: 迭代 for-each
实现类:
HashSet 常用 元素存储顺序不一定等于元素添加的顺序
LinkedHashSet HashSet的子类 元素存储顺序等同于元素添加的顺序
TreeSet 实现了SortedSet(Set的子接口) 对元素自动排序
自定义的类的对象放入HashSet,为了保证元素内容不重复,就必须:
1.覆盖hashCode方法,保证内容相同的对象返回相同的整数
尽量保证内容不同的对象返回不同的整数
2.覆盖equals方法,保证内容相同的对象返回true
Map 接口 键值对 键key:对象 无顺序 唯一 值value:对象 可以重复
常用方法:
clear():清空集合
containsKey / containsValue 判断 键/值 是否存在
get(Object key):返回key所对应的value
put(Object key,Object value):添加键值对 如果key已经存在,新的value覆盖旧的value
remove(Object key):删除key所对应的键值对
size():返回键值对的数量
遍历:
键遍历: keySet():返回Map中所有key的集合 Set
值遍历: values():返回Map中所有value的集合 Collection
实现类:
HashMap 1.2 线程不安全 快 允许用null作为key或value
Hashtable 1.0 线程安全 慢 不允许用null作为key或value
TreeMap 实现了SortedMap(Map的子接口) 对key自动排序
LinkedHashMap HashMap的子类 元素存储顺序等同于元素添加的顺序
泛型 模板编程
用在集合框架中,可以实现类型安全的集合
指定集合中元素的类型