1.java集合概念
1. java操作比较多的时候会用到数组,但是很多时候数组对于对象以及比较庞大的数据,数组并不能够满足java的需求,因此java定义了集合
这个类。
2. 集合方便对多个集合或者说多个对象进行操作。
2.java集合族类介绍
1. collection是集合类的接口,但这个接口没有直接的实现类。不过有list与set两个接口类继承collection,就是list与set集合,set集合不
能够包涵重复的元素,list是一个有序的集合并且可以包含重复的元素,个人比较喜欢使用list。
2. map集合是java.util包中的另一个接口,他和collection接口没有关系,相互独立,却都属于集合的一部分。map集和与collection集和最大
的区别就是单列和双列的区别,map采用的是键值对的模式一般都是成对出现的。
3.java中的单列结合
java单列结合家族中,collection为根接口,旗下有set与list两个子类。
collection:list、set。
list:Linkedlist、Arraylist、Vector。
set:Hashset、Treeset。
3.1单例各个集合底层数据结构和基本性质
1.list集合:(有序、可重复)
1.1:ArrayList集合
a.底层数据结构是数组,查找快,增删慢。
b.线程不安全,效率高
1.2:Vector集合:
a.底层数据结构是数组,查询快,增删慢
b.线程安全,效率低。
1.3:LinkedList集合:
a.底层数据结构是链表,查询慢,增删快
b.线程不安全,效率高。
2.set集合(元素不可重复,元素唯一)
2.1:Hashset集合:
a.底层数据结构是哈希表,哈希表依赖两个方法hascode()与equals()方法
2.2:hascode与equals的执行顺序
a.hascode>>equals
b.首先将会判断hascode()值是否相同
hascode return true>>执行equals
hascode return false>>不执行equals
equals return true>>元素重复不添加该元素
equals return false>>直接添加元素
2.3Treeset集合
a.底层数据结构是二叉树
java的双列集合
1.java中的Map集合是双列的,Map集合是Map家族的根接口,他有HashMap和TreeMap集合两个子类。
2.Map集合中只对键有效,对值无效。
3.子类的数据结构:
a.HashMap:底层数据结构是哈希表
b.TreeMap:底层数据结构是二叉树
两者性质与Set底层数据结构一样
如何正确使用java中的集合
a.集合使用一般步骤
创建集合>创建集合对象>通过集合对象给集合中添加元素>遍历元素
b.集合遍历方法:
1.lterator:迭代输出
2.Listlterator:专门用于输出List中的内容,Lteratoro的子接口
3.增强for循环
4.for循环
实例代码:
1.迭代器:
lterator it = list.iterator();//创建得迭代器对象
While(it.hasNext()){//循环遍历
}
2.for循环
for(int i=0;i<list.size();i++){
}
3.增强for循环
for:for(int x:a){
}
java集合的选择
1.考虑条件:
a.元素是否唯一
是:Set集合
b.元素是否排序
是:TreeSet
否:HashSet
c.安全性高低
高:Vector
低:ArrayList或LinkedList
d.增删多还是查询多
增删多:LinkedList
查询多:ArrayList