java学习day7

Set集合

List有序的集合 Set是无序的

有序:取出的顺序和添加的顺序是一样的

无序:取出的顺序和添加的顺序无关

HashSet 哈希set

Set中不能存储相同的数据

add()

set.add(a)

在set中添加a元素

可以添加null

size()

set.size()

返回set集合的长度

remove()

set.remove(a)

删除set中的a元素

TreeSet 红黑树

add存入数据,不能存入null,存入的数据的数据类型需一样

树的遍历

先序遍历 中序遍历 后序遍历

TreeSet遍历方式 中序遍历

TreeSet内部使用二叉树,内部节点是可以比较大小的

同一个TreeSet对象中存储的内容都应该是可比较的

默认情况下不能存储不同类型

对于上述数据

默认遍历

可以通过比较器控制遍历规则

两种方式

        lambd表达式

        

        实现comparable接口

                            

LinkedHashSet是有序的集合Set

Map

存储键值对  键就是名字  值就是存储的对象

定义

hashmap里的key和value都可以是null,key是唯一的,重复的key的map会被覆盖掉,value可以重复

常用方法

put()

map.put(k,v)

将k键和v值存入map中

get()

map.get(k)

通过存入的key获取存入的value对象

remove()

map.remove(k)

通过key删除键值对,返回删除的value值

map.remove(k,v)

如果key和value都匹配,就删除,返回true

如果不匹配,不删除,返回false

containsKey()

map.containsKey(k)

搜索map中是否有k键

containsValue()

map.containsValue(v)

搜索map中是否有v值

keySet()

map.keySet()

获取所有的key值,返回set类

values()

map.values()

获取所有的value值,返回collection类

TreeMap

key应该是可比较的

key不能是null值

TreeSet底层实现为TreeMap

Hashtable

Hashtable的key和value都不能是null值

Hashtable是线程安全的集合

LinkedHashMap

ConcurrentHashMap

线程安全,效率较高

HashMap

底层实现为数组加链表

Hash的数组默认容量是16

每次扩容两倍

扩容阈值是0.75 即容量为16时,内容达到16*0.75=12时便扩容

一个链达到8就该对链进行树化

一支树上的元素低于6个这个树就会退化成链

最小树化的容量阈值是64

如果数组长度没有达到64有限扩容

线程安全的Map有两个 Hashtable和ConcurrentHashMap(性能优异,锁颗粒度比较小)

泛型

广泛的数据类型

是确保类型安全的一种途径

定义

        在类或方法上定义泛型

        

类型不安全

类型转换时没有明确对象的数据类型,进行强制数据类型转换

会抛出ClassCaseException(类型转换异常)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值