Java 集合框架
java 集合框架
List:不唯一,有序 ArrayList LinkList
和数组类似,可以动态增长,根据实际存储的长度自动增长List的长度
查找元素效率高,插入和删除效率低,插入和删除会引起元素位置的改变
Set :唯一,无序 HashSet TreeSet
检索效率低,插入和删除效率高
Map: HashMap
存储Key-value 键值对,key 到 value 的映射
ArrayList:
1.是一个可以动态修改的数组,与普通数组的区别是没有固定大小的限制。
2.继承了abstract接口,实现了List 接口。
3.是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。
ArrayList<E> arraylist = new ArrayList<>();
E :泛型数据类型,只能为引用数据类型。
基本数据类型 引用类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
常用方法:
add(); 添加元素
get(); 通过索引值获取元素
size(); 返回元素的个数
indexOf(); 返回某个元素的索引值
contains(); 判断是否包含某个元素
clear(); 删除所有元素
remove(); 删除某个元素
removeAll();删除所有元素
isEmpty(); 判断arraylist是否为空
sort(); 排序
toArray(); 转换为数组
toString(); 转换为字符串
subList(); 截取部分元素
addAll(index,Collection c); 将集合全部添加进去,也可指定位置
HashMap
HashMap是一个散列表,存储的是键值对(key-value)映射。
HashMap是无序的,不会记录插入的顺序。
HashMap的key-value可以相同,也可以不同。
HashMap实现了Map接口,具有很快的访问速度,最多允许一条记录的键为 null ,不支持线程同步
用途:可以用来记录某个元素出现的次数。
常用方法:
hashmap.put(); 添加元素
hashmap.size(); map集合中键值对的数量
hashmap.get(); 通过key获取对应的value
hashmap.containsKey(); map集合中是否包含相对应的key值
hashmap.containsValue(); map集合中是否包含相对应的value值
hashmap.getOrDefault(value, default value); 获取key对应的value,若不存在,则返回default value。
hashmap.remove(key); 删除映射关系
hashmap.remove(key,value); 删除映射关系
hashmap.isEmpty(); 判断hashmap 是否为空
哈希表 只能有一个key,相同的key赋值的value会被最后一个覆盖,value可以重复。
HashSet:
是基于HashMap来实现的,是一个不允许有重复元素的集合
HashSet允许有 null值
HashSet 是无序的,不会记录插入的顺序
HashSet 不是线程安全的,如果多个线程尝试修改HashSet,最终结果是不确定的
必须在多线程访问时显式同步对HashSet的并发访问
HashSet实现了 set 接口
常用方法:
add(); 将指定元素添加到集合中
contains();是否某个元素
size(); 集合中元素个数
isEmpty(); 集合中是否包含元素
clear(); 删除集合中所有的元素
remove(); 删除集合中指定的元素
Stack:
栈是Vector的一个子类,实现了标准的后进先出的栈
两种方式初始化 Stack:
Stack stack = new stack();
Stack<Integer>stack = new Stack<>();
常用方法:
push();将元素压入栈中
pop(); 移除栈顶的元素,并返回次元素的值
peek();返回栈顶元素
empty();判断栈是否为空
search();返回元素在栈中的位置,栈顶元素为 1

浙公网安备 33010602011771号