第十九节课 Map Collection总结

目录

TreeSet:

排序:

Collection(接口)

--List(接口) 元素有序,不唯一

--ArrayList

--Vector

--LinkedList

--Set(接口) 元素唯一,无序

Set相关集合有三种遍历方式:

--HashSet

--LinkedHashSet

--TreeSet

这么多集合,开发中使用谁呢?

Map接口概述

Map接口成员方法

HashMap类


TreeSet:

元素唯一,且元素的顺序可以按照某种规则进行排序

排序的方式有两种:

自然排序

比较器排序

TreeSet的两个特点:排序和唯一

TreeSet集合存储自定义对象并保证排序和唯一

原理:是根据比较的结果是否是0来决定的

排序:

1、自然排序(传入的数据接口具备实现了Comparable接口)

2、比较器排序

在创建集合的时候,调用带参数的构造方法,这个参数是实现了Comparator接口的子类对象

如果没有说明排序规则,自然排序,从大到小进行排序

注意:成员变量的值都相同的情况下算唯一的,就是同一个元素

TreeSet是如何保证元素的排序和唯一性的

底层数据结构是红黑树(红黑树是一种自平衡的二叉树)

Collection(接口)

--List(接口) 元素有序,不唯一

List相关集合有三种遍历方式:

1、结合size()和get()方法有普通for循环

2、迭代器遍历方式

3、增强for循环

--ArrayList

底层是数组,查询快,增删慢

线程不安全,效率高

--Vector

底层是数组,查询快,增删慢

线程是安全的,效率低

--LinkedList

--底层是链表,查询慢,增删快

线程是不安全的,效率高

--Set(接口) 元素唯一,无序

Set相关集合有三种遍历方式:

1、迭代器方式遍历

2、增强for循环

--HashSet

底层依赖哈希表,依赖hashCode()和equals()方法来保证元素唯一的

--LinkedHashSet

底层依赖哈希表和链表,哈希表保证元素唯一,链表保证元素有序。

--TreeSet

底层是红黑树(自平衡二叉树)

排序依赖自然排序和比较器排序。

这么多集合,开发中使用谁呢?

1、需不需要查询快

2、需不需增删快

3、需不需线程安全

如果说你实在不知道用什么,开发中也没有明确规定以上需求,你就用ArrayList

Map接口概述

将键映射到值的对象

一个映射不能包含重复的键

每个键最多只能映射到一个值

Map接口和Collection接口的不同

Map是双列的,Collection是单列的

Map的键唯一,值可以重复,Collection的子体系Set是唯一的

Map集合的数据结构值针对键有效,跟值无关

Collection集合的数据结构是针对元素有效

Map接口成员方法

V put(K key,V value) 将指定的值与该映射中的指定键相关联,两次插入同一个key的映射的时候,返回的是该key上一个映射中对应的值

V remove(Object key) 从该地图中删除一个键的映射,根据key移除,返回的是映射中对应值

void clear() 从该地图中删除所有的映射

boolean containsKey(Object key) 判断集合中是否包含某个键,如果包含返回true,如果不包含返回false

boolean containsValue(Object value) 判断集合中是否包含某个内容,如果包含返回true,如果不包含返回false

boolean isEmpty() 是否为空值

int size() 返回此Map中键值映射的数量

V get(Object key) 返回到指定键所映射的值,或null如果此映射包含该键的映射

Set keySet() 返回此地图中包含的键的Set视图

Collection values() 返回此地图中包含的值的Collection

Set>entrySet() 返回此地图中包含的映射的Set视图

HashMap类

键是哈希表结构,可以保证键的唯一性

LinkedHashMap类

Map接口的哈希表和链接列表实现,具有可预知的迭代顺序

哈希表保证唯一性,保证的是Key的唯一性

链表保证有序,保证的是键的有序(存储和取出顺序一致)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值