java集合框架概述
文章平均质量分 79
Catty_Cat
怎么做?
为什么这么做?
还能怎么做?
展开
-
java实现红黑树及其各种遍历方式
红黑树的性质 1.节点是红色或黑色 2.根节点是黑色 3.所有叶子都是黑色。(叶子是NUIL节点) 4.每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) 5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。java实现package com.goat.api.data.structure;import java.util.LinkedList;import java.util.List;import j原创 2020-10-20 14:05:50 · 1939 阅读 · 0 评论 -
HashMap get方法源码细节分析(JDK1.8)
HashMap get方法源码get方法图示:get方法源码:get方法/** * 这是一个比较重要的一个方法(get和put方法都是HashMap操作比较重要的方法) * 根据键key,获取对应的值 */public V get(Object key) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? null : e.value;}getNode方法/** * getNod原创 2020-09-20 15:00:55 · 216 阅读 · 0 评论 -
HashMap put方法源码细节分析(JDK1.8)
HashMap put方法源码put方法图示:put方法源码:put方法/** * 这也是一个比较重要的一个方法(get和put方法都是HashMap操作比较重要的方法) * 根据key,value存入HashMap中。 */public V put(K key, V value) { //调用putVal()方法存入HashMap。 return putVal(hash(key), key, value, false, true);}putVal方法/** *原创 2020-09-16 08:08:29 · 215 阅读 · 0 评论 -
LinkedList源码分析
LinkedList图解package java.util;import java.util.function.Consumer;/** * LinkedList底层使用一个Node数据结构,有前后两个指针,双向链表实现的。相对数组,链表插入效率较高,只需要更改前后两个指针即可; * 另外链表不存在扩容问题,因为链表不要求存储空间连续,每次插入数据都只是改变last指针;另外,链表所需要的内存比数组要多, * 因为他要维护前后两个指针;它适合删除,插入较多的场景。另外,LinkedList原创 2020-08-18 20:40:43 · 173 阅读 · 0 评论 -
ArrayList源码解读,全是细节
ArrayList简介: 1.是一种变长的集合类,基于定长数组实现。 2.允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。 3.底层基于数组实现,所以其可以保证在 O(1) 复杂度下完成随机查找操作。 4.是非线程安全类,并发环境下,多个线程同时操作 ArrayList,会引发不可预知的异常或错误。话不多说直接上源码 各参数、各方法、及其实现原理均已注释。package java.util;import java.原创 2020-08-17 17:47:27 · 153 阅读 · 0 评论 -
java集合框架概述
集合框架类图框架类图各接口及类1. Iterator接口 迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象。它提供了一种访问一个容器(container)对象中的各个元素,而又不必暴露该对象内部细节的方法。通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。使用示例:public class IteratorDemo { public static void main(String[] args) { List<String&原创 2020-08-13 17:22:03 · 150 阅读 · 0 评论