java集合
## java集合简述
ArrayList :动态数组
- 0,ArrayList :动态数组说白了,底层就是一个数组来存储数据。
- 1、存储的是Object类型的元素,所以任何数据都可以装进去。
- 2、长度是可以动态改变的,如果长度不够,集合本身会动态自动扩容。
- 3、存储元素是有序的,所以可以通过下标来访问。
- 4、可以添加重复的元素,它允许重复。
- 5,优势:查找元素,修改元素,非常方便,对其他元素没有影响。
- 6,劣势:插入元素,删除元素,比较麻烦,如果对元素进行插入,删除较多建议使用ArrayList。
- 7,语法:
方法 | 说明 |
---|
add(objes):boolean; | 添加 |
remoe(index||value):boolean; | 删除 |
set(index,value):void; | 修改 |
get():void; | 查找 |
clear():void; | 清空 |
size():int; | 获取长度 |
indexOf():int; | 获取元素位置 |
contains():boolean; | 查看元素是否存在 |
LinkedList:双向链表
- 0,LinkedList:双向链表,存储空间不是连续的,可以把它想象成一辆火车有车头有车尾中间可以添加仍意数量的车厢。
- 1,有序,可以添加重复的元素,可以通过下标来访问。
- 2,优势:插入元素,删除元素,非常方便,对其他元素没有影响。
- 3,劣势:查找元素,修改元素,比较麻烦,如果对元素进行插入,删除较多建议使用LinkedList。
- 4,基本方法:
方法 | 说明 |
---|
add(objes):boolean; | 添加 |
remoe(index||value):boolean; | 删除 |
set(index,value):void; | 修改 |
get():void; | 查找 |
clear():void; | 清空 |
size():int; | 获取长度 |
indexOf():int; | 获取元素位置 |
contains():boolean; | 查看元素是否存在 |
方法 | 说明 |
---|
addFirst():boolean; | 添加到第一个 |
addLast():boolean; | 添加到最后第一个 |
removeFirst():boolean; | 删除到第一个 |
removeLast():boolean; | 删除到最后第一个 |
HashMap:哈希表
- Map:映射(–映射)
- 1,key == value(即一个键有且对应一个值)
- 2,key不能重复,是唯一的,value可以重复。
- 3,每一个键值对就封装在Entry对象中
- 5,entry对象又由key和value组成
- 6,HashMap的存储结构:
Map
entry
key-value
entry
Map
方法 | 说明 |
---|
put(key,value) | 添加元素(如果键相同,其实就是修改,覆盖原有的值) |
|
remove(key) | 删除元素 |
|
size():int; | 获取长度 |
|
containsKey(key):boolean; | 表示判断是否存在指定的key |
|
containsValue(value):boolean; | 表示判断是否存在指定的value |
|
get(key):value; | 获取单个元素 |
|
entrySet():Set; | 获取HashMap的key集合 |
|
HashSet集合
- 0,Set:集合,数据集
- 1,不能重复
- 2,无序,不能根据下标访问。
- 3,HashSet的方法:
方法 | 说明 |
---|
add(value):boolean; | 添加元素 |
renove(value):boolean; | 删除元素 |
iterator():Iterator; | 通过迭代器来访问元素 |
Iterator迭代器
- 0,迭代:遍历的意思
- 1,迭代器:用于遍历实现了Iterator接口的集合
- 2,hasNext()表示是否还有下一个元素
- 3,next()表示取出下一个元素
- 4、底层实现结枸,就是HashMap现
- 5,HashMap示例:
Set keys=map.keySet();
Iterator it = keys.iterator();
while(it.hasNext()){
String key=(String)it.next();
System.out.print(map.get(key));
}
Iterator it = set.iterator();
while(it.hasNext()){
String str=(String)it.next();
System.out.print(str);
}
注意事项
- 1,List<数据类型> li=new ArrayList<数据类型>(); //不能使用基本数据类型
- 2,Map<String,String> m=new HashMap<String,String>(); //不能使用基本数据类型