Java集合框架(三)--List理解

来源:互联网 发布:php trim 弱等于 编辑:程序博客网 时间:2024/06/05 15:21

List是由根接口Collection派生出的子接口。
特点:是个有序集合,元素可重复。
这个接口应该是Collection用多比较多的一个子接口了吧,基本上涉及到数据库的查询都是用List来存储数据的。因为将数据库查出来的每条记录都映射成一个对象后用List存储每个对象元素操作起来真的是方便。List的size()就是获取该集合中元素的个数,也就是存储了对象的个数。一个对象对应数据库查询的一条记录,那查询一个表也不过是多个对象而已,用一个List去存储再适合不过。
不过实际上应用操作的都是List的实现类

//获取学生表全部记录List<Student> list = StuDao.selectAll();

就像这个list实际是赋值方法的返回值,得到的都是ArrayList,然后调用的自然也是实现类的具体方法。
ArrayList是个数组线性表,就是可以类似数组的形式存储。所以它的随机访问速度极快。但缺点自然就是不适合频繁的进行插入删除操作,因为每次操作都要移动数组中的所有元素。可以将ArrayList理解为是基于数组的一个线性表。但是这个数组的长度是可以动态改变的。
Vector也是List类的典型实现。Vector和ArrayList都是基于数组实现的List类,所以都封装了一个动态再分配的Object[]数组。每个ArrayList或Vector对象有一个capacity属性,这个capacity表示它们所封装的Object[]数组的长度。当向ArrayList或Vector添加元素时,它们的capacity会自动增加。
ArrayList和Vector显著区别是ArrayL是线程不安全的,当多条线程访问同一个ArrayList集合时,必须手动设置才能保证该集合的同步性。
Vector是线程安全的,所以Vector的性能比ArrayList性能低。
当需要保证LIst集合线程安全也不推荐Vector,Collections(不是接口Collection)工具类可以将ArrayList变成线程安全的。
Vector还提供了一个Stack种类,是用于模拟“栈”这种数据结构。
最后List还有一个LinkedList实现类,是一个基于链表实现的List类,对于顺序访问集合中的元素进行了优化,插入删除操作速度非常快。因为LinkedList同时实现List接口和Deque(双向队列)接口

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 急诊科医生演员 急诊和门诊有什么区别 急诊室故事纪录片 急诊科医生灯泡第几集 急诊科医生全集免费观看 闪婚急诊唐医生 医科 麻药 快速问诊 如何确定幼儿急诊 性/ 性之 之性 .性 性 图 性. 性受 性也 性v 性生 性8 性都 性图 性玩 性战 性影 圆性 疣性 性椅 能性 全性 是性 得性 性在 说性 性向 性欧美wwwwetxnet 欧洲性 性谎言 滴湿性续集 性躯干