Java集合总结

Java集合
1、三大接口:Set、List、Map
接口和实现类的关系
在这里插入图片描述
2、集合特性
List扩容机制:当超过原始容量时,按照本身的扩容容量进行扩容
哈希表(散列表):通过哈希算法计算下表位置后进行存储,当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值—即当前数组的长度乘以加载因子的值的时候,按照本身的扩容容量进行扩容。
2.1、List接口:元素按进入先后有序保存,可重复
ArrayList: 数组存储,查询快,增删慢
LinkedList:链表存储,查询慢,增删快
2.2、Set接口:内部元素不可重复
HashSet: 哈希表存储,底层使用HashMap实现,hashCode()和equals()方法来保证元素唯一性
TreeSet:红黑树,底层使用TreeMap实现,元素有序
2.3、Map接口:键值对的集合
HashMap:哈希表存储
TreeMap:红黑树,key进行排序
在这里插入图片描述
3、集合方法
3.1、Collection接口相关方法:
add(Object o) //添加指定元素
addAll(Collection c) //添加指定集合
remove(Object o) //删除指定元素
removeAll(Collection c) //删除集合中包含的元素
retainAll(Collection c) //两个集合的交集
clear() //清空集合
size() //集合中的有效元素个数
toArray() //将集合中的元素转换成Object类型数组
isEmpty() //判断是否为空
equals(Object o) //判断是否与指定元素相同
contains(Object o) //判断是否包含指定元素
containsAll(Collection c) //判断是否包含指定集合
stream() // JDK1.8新增方法,返回该集合对应的流
3.2、Map接口相关方法:
// 返回此映射中的键-值映射关系数。
int size();
// 如果此映射未包含键-值映射关系,则返回 true。
boolean isEmpty();
// 如果此映射包含指定键的映射关系,则返回 true。
boolean containsKey(Object key);
// 如果此映射将一个或多个键映射到指定值,则返回 true。
boolean containsValue(Object value);
// 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
get(Object key);
// 将指定的值与此映射中的指定键关联(可选操作)。
put(K key,V value);
// 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
remove(Object key);
// 从指定映射中将所有映射关系复制到此映射中(可选操作)。
void putAll(Map<? extends K, ? extends V> m);
// 从此映射中移除所有映射关系(可选操作)。
void clear();
// 返回此映射中包含的键的 Set 视图。
SetkeySet();
// 返回此映射中包含的值的 Collection 视图。
Collectionvalues();
// 返回此映射中包含的映射关系的 Set 视图。
Set<Map.Entry<K,V>> entrySet();
// Map.Entry是Map的一个内部接口。 Entry也是键值对,只不过Entry只是Map中的一个键值对
interface Entry<K, V>{
KgetKey();
VgetValue();
VsetValue(V value);
boolean equals(Object o);
int hashCode();
}
// 比较指定的对象与此映射是否相等。
boolean equals(Object o);
// 返回此映射的哈希码值。
int hashCode();
4、开发应用
Set集合常用类HashSet

Set<String> set = new HashSet();

List集合常用类ArrayList和LinkedList

List<String> list = new ArrayList();
List<String> list1 = new LinkedList<>();

Map集合常用类HashMap

Map<String,Object> map = new HashMap<>();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值