• 概念
• 体系结构
• 实际应用
生活中集合;提操场人员集合、
数学中得集合:具有某种特征事务得整体
Java中的集合是工具类,可以存储任意数量得具有共同属性得对象
为什么要用集合,不用换数组?
问题:存储20名学生得学生信息----数组
问题:存储商品信息----集合----对于长度不固定得信息用集合存储
应用场景:
• 无法预测存储数据得数量
• 同时存储具有一对一关系得数据-----比如购买得商品和他的序列号一一对应
• 需要进行数据得一个增删-----数组得增删查看之前得项目(数组移位统计)集合能够好很好进行增删操作
• 数据重复问题----set集合不允许插入重复的数据
集合框架得体系结构
集合主要有以下2个接口:
• collection接口主要实现存储学生信息等------类的对象
• map主要存储键值对信息,比如说商品序列号和商品信息一一对应----键值对
List(列表)
• 是元素有序并且可以重复得数据,称为序列
• 可以精确控制每个元素得插入位置,或者删除某个元素得位置
• list的两个主要实现类是:Arraylist和linkedlist
ArrayList
• 底层是数组实现的
• 动态增长,以满足应用程序的需求
• 在列表尾部插入或者删除数据非常有效
• 更适合查找和更新数据
• Arraylist中的元素可为null
案例:用ArrayList存储编程语言的名称,并输出:
名称包括:Java C C++ Go Swift
set集合
set是元素无序的,并且不可以重复的集合,被称为集。
hashSet
• hashSet是set的一个重要实现类,称为哈希集
• hashset中的元素无序,并且不可以重复。
• hashset只允许一个null值
• 具有良好的存取和查找的性能。
• hashset底层其实就是hashmap。
Iterator(迭代器)
• Iterator接口可以以统一的方式对各种集合元素进行遍历
• hasNext()方法检测集合中是否还有下一个元素
• next()方法返回的是集合中下一个元素
Map
Map中的数据是以键值对形式(key-value)存储的
username 张三
map常用在用户注册和登陆中对用户名、密码等的存储
map
• map中的数据以key value形式存储
• key-value以entry类型的对象实例存在的
• 可以通过key值快速查找到value
• 一个映射不能包含重复的键
• 每个键只能映射到一个值
注意:key value是一一对应
• 基于哈希表中map接口的实现
• 允许有null值和null键 ----- null键也是唯一的
• key值不允许重复
• hashmap中entry对象是无序排列的
除了Arraylist是有序的允许重复的,
set hashset map hashmap都是无序的