黑马程序员—javaCollection集合框架
2015-07-28 22:35
204 查看
-------
<a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
java是一门面向对象语言,所以不管是在开发还是学习中,都需要针对多个对象进行操作,操作就必须有存储,而对于多个元素进行存储,数组有与长度是固定的,不能满足元素变化得需求,所以java为我们提供了一种新的容器集合!
1,集合的特点:(1)、长度可以发生改变
(2)、只能存储对象
(3)、可以存储多种类型对象(一般存储的还是同一种)
2,集合和数组的区别:(1)、长度问题
数组固定
集合可变
(2)、存储元素问题
数组可以是基本类型,也可以是引用类型。
集合只能是引用类型。
(3)、是否同一类型
数组元素类型一致。
集合元素类型可以不一致。
二、Collection单列集合框架:
Collection
|--List
特点:有序的(存和取得顺序一致),带索引的,通过这个索引可以精确的操作集合中的元素,元素可以重
复,List接口的特有方法:全部都是围绕索引进行的。
|--ArrayList 底层是数组结构,长度是可变的(创建数组+复制数组),非线程安全的,效率高;查询速度快,增删速度不给力。
|--Vector 可以增长的数组结构,线程安全的,效率低,增删快,查询慢,对比ArrayList查询效率低。
|--LinkedList 底层是链表结构,非线程安全的,效率高,增删速度快,查询速度慢,可用于实现堆栈和队列结构。
|--Set 不包含重复元素,无序的。
|--HashSet 哈希表结构,查询速度快,但只保证元素唯一。非线程安全的,保证元素唯一性依赖于HashCode() 方法和equals()方法。
|--TreeSet 二叉树结构,可以对集合中的元素进行排序,有两种方式:
(1):元素自身具备排序(自然排序),其实就是实现了Comparable接口重写了compareTo()方法,如果元素自身不具备自然排序,或者不是我们所需求的,这时候就用第二种方式了
(2):比较器:其实就是在创建TreeSet集合,在构造函数中指定集体的比较方式,需要重新定义一个类实现comparator接口,重写了compare()方法。
三、Collection集合的基本方法
A:添加功能
向集合中添加一个元素:
boolean add(Object obj)
向集合中添加一个集合的元素:
boolean addAll(Collection c)
B:删除功能
删除集合中的所有元素:
void clear()
从集合中删除指定的元素:
boolean remove(Object obj)
从集合中删除一个指定的集合元素。
boolean removeAll(Collection c)
C:判断功能
判断集合是否为空集合:
boolean isEmpty()
判断集合中是否存在指定的元素:
boolean contains(Object obj)
判断集合中是否存在指定的一个集合中的元素:
boolean containsAll(Collection c)
<a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
一、java集合框架
集合体系的由来:集合是一个存储多个元素的容器,但是,由于数据结构的不同,java提供了多种集合类,而这多种集合类有共性的功能,所以通过不断的向上抽取,最终形成了集合体系框架。java中分为两种单列集合和双列集合体系,Collection是单列集合体系的顶层接口,里面包含了所有单列集合的共性功能。双列集合的顶层是Map接口。java是一门面向对象语言,所以不管是在开发还是学习中,都需要针对多个对象进行操作,操作就必须有存储,而对于多个元素进行存储,数组有与长度是固定的,不能满足元素变化得需求,所以java为我们提供了一种新的容器集合!
1,集合的特点:(1)、长度可以发生改变
(2)、只能存储对象
(3)、可以存储多种类型对象(一般存储的还是同一种)
2,集合和数组的区别:(1)、长度问题
数组固定
集合可变
(2)、存储元素问题
数组可以是基本类型,也可以是引用类型。
集合只能是引用类型。
(3)、是否同一类型
数组元素类型一致。
集合元素类型可以不一致。
二、Collection单列集合框架:
Collection
|--List
特点:有序的(存和取得顺序一致),带索引的,通过这个索引可以精确的操作集合中的元素,元素可以重
复,List接口的特有方法:全部都是围绕索引进行的。
|--ArrayList 底层是数组结构,长度是可变的(创建数组+复制数组),非线程安全的,效率高;查询速度快,增删速度不给力。
|--Vector 可以增长的数组结构,线程安全的,效率低,增删快,查询慢,对比ArrayList查询效率低。
|--LinkedList 底层是链表结构,非线程安全的,效率高,增删速度快,查询速度慢,可用于实现堆栈和队列结构。
|--Set 不包含重复元素,无序的。
|--HashSet 哈希表结构,查询速度快,但只保证元素唯一。非线程安全的,保证元素唯一性依赖于HashCode() 方法和equals()方法。
|--TreeSet 二叉树结构,可以对集合中的元素进行排序,有两种方式:
(1):元素自身具备排序(自然排序),其实就是实现了Comparable接口重写了compareTo()方法,如果元素自身不具备自然排序,或者不是我们所需求的,这时候就用第二种方式了
(2):比较器:其实就是在创建TreeSet集合,在构造函数中指定集体的比较方式,需要重新定义一个类实现comparator接口,重写了compare()方法。
三、Collection集合的基本方法
A:添加功能
向集合中添加一个元素:
boolean add(Object obj)
向集合中添加一个集合的元素:
boolean addAll(Collection c)
B:删除功能
删除集合中的所有元素:
void clear()
从集合中删除指定的元素:
boolean remove(Object obj)
从集合中删除一个指定的集合元素。
boolean removeAll(Collection c)
C:判断功能
判断集合是否为空集合:
boolean isEmpty()
判断集合中是否存在指定的元素:
boolean contains(Object obj)
判断集合中是否存在指定的一个集合中的元素:
boolean containsAll(Collection c)
相关文章推荐
- 前端笔试面试题
- 面试总结之Java基础(未完工)
- 黑马程序员——Java面向对象封装继承多态
- 黑马程序员——高新技术---Java基础-多线程2
- 黑马程序员——高新技术---Java基础-多线程1
- 默齐致知电话面试
- 黑马程序员——Java学习总结:Java编程基础
- iOS面试笔试汇总
- 黑马程序员——高新技术---Java基础-IO流
- 黑马程序员--iOS--C基础(程序结构)
- 面试题_28——字符串的全排列
- 黑马程序员——高新技术---Java基础-IO流_File类,递归思想
- 黑马程序员------OC 面向对象和面向过程思想(基础)
- 黑马程序员——高新技术---Java基础-set接口,Map接口
- 剑指offer_面试题7_用两个栈实现队列(让我熟悉了类模板的使用)
- 面试题27_二叉搜索树与双向链表
- 笔试/面试题记录
- 阿里面试总结
- 剑指offer面试题11——数值的整数次方
- 面试题26_带随机指针的链表复制