关于【集合】概述,与应用】

为什么需要学习集合
java是面向对象的语言,在java当中大部分操作都需要存储对象(数组可以做到)
并且操作对象(增删查改),由于数组的长度固定不变,所以增加和删除非常麻烦
需要自己来实现,而面向对象思想就是不断操作容器对象
希望有新的技术能够有以下功能;
1,存储数据 数组 【数组长度固定不变】
【StringBuffer StingBuilder只能存储字符串,不能存储任意类型】
2,增删查改的方法
3,能够存储任意类型
4,长度能够自动增长

集合正是我们需要的~

什么是集合?
集合不是一个类,而是一套框架
集合的特点;
1,只能够存储引用类型,但是我们可以存储基本类型对应的包装类类型,反而扩充了集合的功能
2,集合是可变长度的
3,集合中有很多操作集合元素的方法
4,集合是一套框架,必须具备以下方法,顶层父类应该设计成接口

什么是数据结构?
数据的存储方式
数组就是一种数据结构,除了数组这个数据结构之外,和集合相关的有 链表 栈 队列 二叉树 哈希表…
数据结构能够决定集合的存储效率

添加
删除
修改
获取
判断
其他

我们关系集合的特点和方法
特点;
1,元素是否唯一
2,元素是否有序【存储顺序一致】
3,元素是否可排序【2 5 8 1 】1258
4,集合是否线程安全
5,集合效率【根据数据结构】
6,集合是否可以存储null元素

并发修改异常;在使用迭代器迭代的同时,使用原集合修改了元素
解决办法;
1,要么就只操作原集合,使用原集合修改
2,要么使用迭代器修改

并发;同时执行,并不是真正的同时
并行;真正的同时执行

   Collection  集合

Lterator 迭代器

foreach就是集合和数组的专属迭代器
foreach遍历集合底层是迭代器
foreach遍历数组底层是普通for循环遍历

List; 接口特点, 有序 可重复
有索引,

迭代器和集合 一起用
ListIterator 获取列表迭代器对象

ArrayList
特点;
1,底层数据结构是数组,增加和删除元素的效率低,查询和修改元素的效率高
2,有索引 查询效率高
3,长度固定不变
4,能够存储null值
5,线程不安全的效率高

Vector
特点; 5,线程安全效率低 注意;Vector 是旧版的ArrayList

遍历集合的方式

猜你喜欢

转载自blog.csdn.net/Mz8520/article/details/89637903