集合

一.集合的概念
集合是用来存对象的
集合和数组的区别:
1.集合的长度可变,数组长度固定
2.集合只可以存对象,数组既可以存对象又可以存基本数据类型数据
二.集合框架
这里写图片描述
ArrayList 底层是数组实现的,集合中可以存相同的对象
LinkedList 底层是链表实现的
HashSet 底层是哈希表实现的,集合中不能存相同的对象
LinkedHashSet 底层是哈希表+链表实现的
三.collection(接口)的方法
boolean add(E e)向集合中添加元素,添加成功返回true
void clear()移除集合中的所有元素
boolean contains (object o) 判断集合中是否包含指定元素,包含返回true
boolean remove(object o)移除集合中的指定元素
int size() 返回集合中的元素个数
object[] toArray() 返回包含集合中所有元素的数组
四.迭代器 iterator
Iterator iterator() 返回在此 collection 的元素上进行迭代的迭代器
方法: boolean hasNext() 判断集合中是否还有元素
E next() 取出元素
五.数据结构
1:顺序存储:数组(Arraylist 底层就是数组) 数组的下标其实是偏移量
优点:知道下标的情况下,访问速度快,
缺点:1). 增删造成成片的数组元素移动,效率低
2). 数组需要一成片的空间
2:链式存储:链表
分类:单向链表,双向链表(LinkedList),循环链表
优点:1)不需要整片空间
2)增删效率高
缺点:查询速度慢,每次都要从头开始
3.栈:先进后出 压栈:push 弹栈:pop
4.队列:先进先出
5.哈希存储:哈希表
查询速度最快的一种方式
分类:1)纯数组
2)数组+链表(HashSet)
3)纯链表(LinkedHashSet)
6.索引存储:索引表
六.LinkedList 集合
public void addFirst(E e) 将指定元素插入此列表的开头
public void addLast(E e) 将指定元素添加到此列表的结尾。
public E getLast() 返回此列表的最后一个元素.
public E getFirst() 返回此列表的第一个元素。
public E removeFirst() 移除并返回此列表的第一个元素。
public E removeLast() 移除并返回此列表的最后一个元素。
public E pop() 将元素推入此列表所表示的堆栈.
public void push(E e) 从此列表所表示的堆栈处弹出一个元素
public boolean isEmpty() 如果此 collection 不包含元素,则返回 true。
七.Set 接口(集合)
1.List和Set集合比较
List: 1).可以存放重复元素
2).集合中的元素存取有序
Set: 1)不能存放重复元素,元素唯一
2)集合不能做到存取有序(LinkedHashSet除外)
2.HashSet
1) 方法全部继承collection的方法,无特有方法
2)保证唯一性的两个方法 hashcode()和equals()
八.Map接口(集合)
1.Collection集合和Map集合的区别
Collection集合中一次只可以存一个对象,(add(“hello”))属于单列集合
Map集合一次可以存一对对象, put(对象1,对象2) 属于双列集合
1)左边为键(key),右边为值(value)
2)左边唯一,右边值可以重复
3)Map接口有三个常用实现类:HashMap,LinkedHashMap,Properties
2.HashMap集合
a.方法
public V get(Object key) 返回指定键所映射的值(即根据键获取值)
public V put(K key ,V value)在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映
射关系,则旧值被替换(向集合添加一对数据,如果键存在,还可以修改键对应的值)
public V remove(Object key)从此映射中移除指定键的映射关系(如果存在)。(根据键删除元素)
b.特点:
1)保证元素键的唯一性
2)元素存取无序
3)集合的键底层就是HashSet存储
4)集合用自定义对象作为键,必须重写HashCode和equals方法
c.put(方法)注意
1)可以修改元素的值
2)如果键第一次添加,返回null,如果第二次被添加,返回被替换的值
d.remove方法:返回删除的值
3.Map集合遍历
1)方式一: a:将所有键取出存入Set集合中
方法:public Set keySet() 返回此映射中所包含的键的 Set 集合
b:遍历Set集合,取出每个键,通过键获取值
方法:增强for+public V get(Object key) 根据键获取值
c:打印键和值
2)方式二:a:获取所有键和值得映射关系
方法:public Set

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值