集合
文章平均质量分 81
小甄笔记
这个作者很懒,什么都没留下…
展开
-
遍历list过程中调用remove方法
List调用remove(index)方法后,会移除index位置上的元素,之后的所有元素依次前移,当移除完【张三】时,【李四】变成了数组的第一位,此时的索引应该要index-1才能获取到【李四】。foreach循环实际上是迭代,使用list.remove(item)方法后,list 对象的modCount值进行了修改,而 list对象的迭代器中的expectedModCount值没有修改,所以抛出了异常。当前遍历对象===张三。当前遍历对象===王五。当前遍历对象===赵六。当前遍历对象===张三。原创 2024-03-13 11:56:22 · 1287 阅读 · 0 评论 -
ConcurrentHashMap
ConcurrentHashMap和HashMap一样,是一个存放键值对的容器。使用hash算法来获取值的地址,因此时间复杂度是O(1)。查询非常快。同时,ConcurrentHashMap是线程安全的HashMap。专门用于多线程环境。原创 2023-11-15 13:54:49 · 72 阅读 · 0 评论 -
HashMap之扩容原理
HashMap 数据结构为 数组+链表(JDk1.7),JDK1.8中增加了红黑树,其中:链表的节点存储的是一个 Entry 对象,每个Entry 对象存储四个属性(hash,key,value,next)原创 2023-11-15 11:20:11 · 111 阅读 · 0 评论 -
Map集合
双列集合,键不允许重复,值可以重复null键 null值都可以添加 5--4 6--4 都能添加进去 5--4 5--6 最后添加的是后者(覆盖前者)常见方法 put(Object key, Object value) map.put("是的", "的数"); remove(Object key) map.remove("啊") containsKey(Object key) 如果此映射包含指定键的映射关系...原创 2020-12-02 15:58:34 · 184 阅读 · 0 评论 -
set接口
不包含重复元素的 collection不允许添加重复的元素 没有索引 无序(插入和取出的顺序不一样与在TreeSet中自然排序不冲突) 本身没有什么方法,都是从父类Collection继承过来的Set接口的实现类——HashSet底层是哈希表结构 是一个HashMap的实例,而HashMap的底层是哈希表 不允许重复 重复的不会被添加,而不是覆盖原有值 无序 ★HashSet里面的元素储存时由hashCode(根据对象的属性,方法,地址等)得到一个哈希值,把哈希值一样...原创 2020-12-02 15:50:26 · 155 阅读 · 0 评论 -
List接口
List接口及其实现类支持索引 有序的collection , 允许重复Collection中没有 get set add remove add(int index,Object obj) 在指定索引处插入(与添加区分)list.add(0, "周芷若"); 无返回值 Collection中没有此方法 add(Object obj) 向列表的尾部添加指定的元素 add(3); 返回boolean类型 set(int index,Object ...原创 2020-12-02 15:29:54 · 164 阅读 · 0 评论 -
collection接口
集合的概念数组 保存一组数的容器数组的长度必须提前指定,而且一旦固定将不能更改 管理对象类型时,实现增删改查逻辑 相对比较麻烦集合概念:保存一组数的容器不用指定长度,并且可以自动扩容 管理对象类型时,实现增删改查逻辑 相对比较容易 可以存储任意类型,原本编译类型被丢弃,变为Object类,按原来类型使用时需要强转集合的体系图 Collection的常见方法 (没有修改的方法)add 添加单个,addAll 批量添加,remove 删除单个,removeAll 批量删除,c...原创 2020-12-02 14:42:01 · 125 阅读 · 0 评论