Collection集合框架
数组的特点:
1.长度一旦被定义,不允许被改变
2.在内存中开辟连续的空间
3.便于查询,但是插入和删除麻烦
集合框架 父接口Collection
public interface List<E> extends Collection<E>
public interface Set<E> extends Collection<E>
public interface Map<K,V>
Vector 线程安全,但是性能低
List 存储的都是不唯一、有序(插入顺序)的数据!
Set 存储的都是唯一、无序的数据!
Map
List接口常用的实现类
01.ArrayList 底层就是一个动态数组,自动扩充!
新增和删除的效率低!遍历数据快!
02.LinkedList 底层就是一个链表
新增和删除的效率高!遍历数据慢!
Set接口常用的实现类
01.HashSet 散列表
001.add新增数据
002.其实是使用了map.put()
003.map.put(key.value)决定了key是唯一的
两个数据如果内容一致,hash值肯定一样!
两个数据如果hash值一样,内容可能不一致!
001.比较hash
002.比较内存地址
03.equals比较内容
02.TreeSet 树型结构 自带排序
只有实现Comparable接口的类才能被排序!
Map 单独的接口
01.HashMap
001.Iterator 所有集合中都有一个Iterator,用来遍历集合中的数据!
hasNext() 判断集合中是否存在下一个元素 返回时boolean
next() 获取集合中下一个元素
remove() 删除元素
02.TreeMap
03.HashTable
001.HashMap 线程不安全,但是性能高
HashTable 线程安全,但是性能低
002.HashTable 从1.0版本就已经开始使用
HashMap 从1.2版本才已经开始使用
003.HashMap 底层局势hash表来实现的 key和value都可以是null
HashTable key和value都不可以是null
Collections
一些方法来操作集合类!