集合框架---List

来源:互联网 发布:淘宝网怎么代销食品 编辑:程序博客网 时间:2024/04/30 15:22
集合框架
javaoo11
JCF:java collection framework
重点:
什么是框架?
集合的分类:list、set、map
各自的特点
什么时候用哪个
基本操作:放、取、删、改、遍历
新知识点:泛型、迭代器、hashcode()
集合工具类:比较器
含义:为了解决某一问题、而预先设计的一系列具有继承和实现的类和接口。
在使用中,我们只需从这些类和关系中选择操作来实现这些接口。
(collection :接口 是集合框架的根接口)
(collections:类)
-----间接衍生 map:映射 特点:线性、有下标
collection -----直接产生 set:集 特点:元素不能重复,无序存放,无下标
----- list: 列表 特点:键值对
list 列表
常用子类:Arraylist、LinkedList
ArrayList:
底层实现就是使用数组,它完成对数组的封装。
首先产生对象: ArrayList lis = new ArrayList();
放入元素: 。add();
得到元素个数: 。size();
根据位置获取元素: 。get(xx);
修改某个位置的元素: 。set(xx,xx);
删除某个位置的元素: 。remove(xx);
对List进行遍历:
1、for循环
for(int i = 0 ; i<list.size;i++)
2、for-each
for(object obj : lst){
sys.(obj);
3、迭代器 :Interator
Interator it = lst . iterator();获取对象
while(it . hasNext()){
Object obj = it . next();
sys(obj);
}
显示从 x 到 y 的内容: . sublist ( x , y );
清除内容: . clear ();

LinkedList:
底层采用双向链表的结构(可见笔记本上的图解);
用法和ArrayList一样;
元素不按顺序存放,分散存放,用链表连接起来。

ArrayList 和 LinkedList:
1、需要做大量查询某个元素的时候,ArrayList效率高于LinkedList;
2、往尾部添加或删除元素时,ArrayList效率高;
往中间添加或删除某元素时,LinkedList效率高。

ArrayList 与 Vector:
(Vector同样是List分支下面的集合类,底层使用的数据结构仍然是数组,提供的方法也是同样的API。)
1、ArrayList线程是不安全的,效率高;
2、Vector线程是安全的,效率低。
Vector在多线程情况下,且可能出现线程安全性问题时,才会用来替代ArrayList。

泛型:
在集合后面出现<>,里面放类型。
表示该集合只能存放该类型及其子类的元素。
0 0
原创粉丝点击