java中的几种集合

数据结构
栈:先进后出 像弹夹
队列:先进先出 排队安检
数组:查询快(数组的地址是连续的,通过数组的首地址可以找到数组,根据索引快速查找某一个元素)
增删慢(数组长度是固定的,我们想要一增加/删除一个元素,必须创建一个新的数组把原来数组复制过来)
在堆内存中,频繁的创建数组

哈希表
哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来的地址,不是数据实际存储的物理地址)
在object中有一个方法可以获得哈希值
哈希表
两个元素不同,但是哈希值相同
特点是速度快

HashSet集合不允许存储重复元素
哈希表=数组+链表/红黑树
set集合中不重复的原理
set集合在调用add方法的时候,会调用hashcode方法和equals方法,判断元素是否相同
存储自定义类型元素时要重写Hashcode和equals方法
LinkedHashSet
LinkedHashSet特点 哈希表+链表+链表,多了一条链表,记录元素的有序

可变参数
使用前提:当方法参数列表的数据类型已经确定,但是参数的个数不确定,就尅使用可变参数

Map接口
map接口中的方法
public V remove(Object key)//删除指定键的键值对
public V get(Object key)//根据指定的键,在Map集合中获取所对应的值
boolean containsKey(Object key)判断集合中是否包含指定的键,有返回true,没有返回false

Map集合遍历的两种方式
第一种:使用keySet()方法将key放到set集合中,在通过遍历key和Get(key)方法实现键值的遍历
第二种:Map.Entry<K,Y>:在map接口中有一个内部接口Entry
使用Entry<K,Y>.entrySet()把多个Entry对象放到Set集合中,遍历set集合获得每一个Entry对象,使用getKey()获得key,使用getValue()获得value

LinkedHashMap集合
哈希表+链表(记录元素的顺序)有序的集合

Hashtable<K,V>
双列集合 单线程 速度慢
底层是哈希表,是一个单线程的集合,是线程安全的集合 ,速度慢
hashtable 和vector集合一样,在1.2版本之后被更先进的集合取代了
hashtable 的子类properies依然活跃在历史舞台
hashtable 是不允许放空值空键的,会报NullPointerException

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值