概念
对象的容器,定义了多个对象进行操作的常用方法,可实现数组的功能
和数组的区别
- 数组的长度确定,集合的长度不确定
- 数组可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型
Collection集合
1.Collection父接口:
是该体系的根接口,代表一组对象,成为集合,每个对象都是该集合的元素。
2.List集合
List 集合的特点:有下标,有序、元素可重复
List子接口:
常用方法:
- void add(int index,object o)//在index位置插入对象o
- boolean addAll(int index,Collection c)//将一个集合中的元素添加到此集合的index位置
- Object get(int index)//返回集合中指定位置的元素
- List subList(int formIndex,int toIndex)//返回formIndex和toIndex之间的集合元素
List实现类
ArrayList
- 数组结构,查询快,增删慢
- 运行效率快,线程不安全
Voctor
- 数组结构,查询快,增删慢
- 运行效率慢,线程安全
LinkedList
- 链表结构,查询慢,增删快。
3.Set集合
Set集合的特点:无下标、无序、元素不可重复(唯一)
HashSet[重点]:
- 基于HashCode实现元素不重复
- 当存入元素的哈希码相同时,会调用== 或equals进行确认,结果为true,拒绝后者存入。
LinkedHashSet:
- 链表实现HashSet,按照链表进行存储,即可保留元素的插入顺序
TreeSet:
- 基于排列顺序实现元素不重复
- 实现了SortedSet接口,对集合元素自动排序
- 元素对象的类型必须实现Comparable接口,指定排序规则
- 通过CompareTo方法确定是否为重复元素
泛型
java泛型是jdk1.5中引入的一个新特性,本质是参数化类型,把类型作为参数传递
常见形式有泛型类,泛型接口,泛型方法
好处:
- 提高代码的重用性
- 防止类型转换异常,提高代码的安全性
注意事项:
- 泛型不能在类中声明静态属性,静态常量
编译时即可检查,而非运行时抛出异常.
访问时,不必类型转换、
不同泛型之间引用不能相互赋值,泛型不存在多态