![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
java冢狐
这个作者很懒,什么都没留下…
展开
-
思维私塾——反转链表
反转链表算是一个十分常见的算法题目,题目十分简单,就是输入一个链表的头节点,反转该链表并输出反转后链表的头节点。如下:根据题干上提示可以使用迭代和递归来解决迭代在遍历链表的时候,需要将当前节点的next指针改为指向前一个元素,但是由于前一个节点没有指向,所以需要实现存储其前一个元素。public ListNode reverseList(ListNode head) { ListNode ans = null ; ListNode curr = head;原创 2020-12-03 09:39:48 · 186 阅读 · 0 评论 -
HashMap都有线程安全容器我ArrayList就不配拥有?
CopyOnWriteArrayList聪明的小伙伴从文章的标题就知道今天我们要介绍的集合时CopyOnWriteArrayList,看名字就知道是ArrayList的衍生品,为了解决ArrayList线程不安全问题而创造出来的。在正式进入CopyOnWriteArrayList之前让我们先看一下COW(Copy On Write)Copy On Writefork()和exec()fork()fork主要用于创建一个新进程,即子进程,创建出来的新进程是通过老进程复制而来。linux系统中的原创 2020-11-16 16:23:56 · 357 阅读 · 0 评论 -
哈希表
哈希表哈希函数哈希函数形成的表为哈希表。元素关键字为K,位置为P基本思想:K和P之间建立对应关系,使得P=f(K);f为哈希函数哈希冲突:K不同的映射到同一位置哈希函数构造方法原则:函数本身便于计算,计算出来的地址分布均匀。减少冲突,数学分析法 实现知道关键字集合,且每个关键字的位数比哈希表地址码位数多,可以从关键字中选取特殊的若干位形成哈希地址。平方取中法 先平方...原创 2019-09-18 17:08:23 · 670 阅读 · 0 评论 -
一文让你看懂java集合之间的区别
主要讲述了java三大集合set、map、list的相关知识与异同原创 2019-12-11 11:41:29 · 983 阅读 · 0 评论 -
java中map集合中的Entry对象
文章目录java中map集合中的Entry对象java中map集合中的Entry对象map类在设计的时候,提供了一个静态嵌套接口(内部接口):EntryEntry将键值对的对应关系封装成了对象,即键值对。修饰为静态可以通过类名调用map.entrySet():返回集合中key、value的set对象遍历Entry对象集合方法:用增强for遍历 public st...原创 2020-04-09 17:14:47 · 894 阅读 · 0 评论 -
ConcurrentHashMap你都讲不明白怎么拿offer
目录一、老朋友HashMap二、ConcurrentHashMap2.1 总结:2.2 同步原理:2.2.1 CAS(比较与交换)2.2.2 volatile:2.3 ConCurrentHashMap的域构造方法方法initTable初始化:Put方法:Get方法:Size方法:在1.7和1.8之间的区别1.71.8如何保证线程安全一、老朋友HashMapHashMap是一个Entry对象...原创 2020-04-14 17:04:07 · 579 阅读 · 1 评论 -
一起来愉快的踩坑之旅——List
一起来愉快的踩坑之旅——List 由于在平时编程中常用到List,但是List里面还有很多不为人知的坑,下面就来总结下常见的一些坑Arrays$ArrayList到底你是谁问题代码 public static void main(String[] args) { String[] arrays ={"1","2","3"}; List<String> list = Arrays.asList(arrays); list.add("4");原创 2020-05-18 21:07:36 · 752 阅读 · 0 评论 -
HashMap从入门到入土
文章目录HashMap源码阅读介绍:结构图:分析参数关键概念常见问题HashMap数据结构:HashMap 工作原理为什么要一起重写hashCode()和equal()方法假设都不重写只重写hashCode只重写equals()方法当两个对象的hashCode相同会发生什么hash的实现使用异或运算符数组扩容的过程拉链法导致链表过深问题为什么使用红黑树不选择二叉树,为啥不一直使用红黑树红黑树的介绍HashMap、LinkedHashMap、TreeMap有什么区别与使用场景HashMap和HashTable原创 2020-07-02 16:51:09 · 660 阅读 · 4 评论 -
HashSet从入门到入土
文章目录HashSet从入门到入土Hashset是什么HashSet内部使用的是HashMapHashSet如何去重的非线程安全的LinkedHashSet无参构造函数最后HashSet从入门到入土Hashset是什么 下面就是HashSet的继承关系图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMUfHjgu-1593755190238)(https://raw.githubusercontent.com/iszhonghu/Picture-bed/maste原创 2020-07-03 13:48:22 · 354 阅读 · 0 评论 -
LinkedHashMap从入门到入土
深入浅出LinkedHashMap介绍 可以看做是HashMap+LinkedList,它即使用HashMap操作数据结构,又使用LinkedList维护插入元素的先后顺序,内部采用双向的形式将所有元素连接起来。迭代有序比HashMap多了一个双向链表的维护,大多数方法都由HashMap实现了。底层是散列表加双向链表插入的顺序是有序的(底层链表导致有序)可以用来实现最近LRU算法,是页面置换算法常用的一种。提供了map应用的算法,允许为null,不同步,可以调用Collection来实现原创 2020-07-22 14:42:37 · 497 阅读 · 0 评论 -
ArrayList从入门到入土
ArratList从入门到入土基本介绍继承图 要想了解一个类,首先先看一下其的继承关系:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JN0kmlbq-1597385870026)(https://raw.githubusercontent.com/iszhonghu/Picture-bed/master/img/20200729104158.png)]基本介绍随机访问速度快,插入和移除性能较差支持元素重复和为null元素有顺序线程不安原创 2020-08-14 14:18:33 · 857 阅读 · 0 评论 -
Collection接口从入门到入土
Collection接口的介绍接口概述Collection是集合层级结构的根接口一些集合允许重复元素,一些不行JDK中不提供Collection接口的任何直接实现类;只提供其更加具体的子类实现类的要求所有的Collection的实现类都是间接实现其子接口来实现。并且所有的实现类应该提供两个标准的构造方法。能改动集合的方法特征Collection中定义的方能够改变集合的方法存在一些特征。在不同的实现类中,这写方法可能产生不同的效果。比如说addAll(Collection())原创 2020-08-14 10:58:44 · 415 阅读 · 0 评论 -
LinkedList从入门到入土
目录LinkedList从入门到入土简介层级结构关键结构节点(Node)方法构造函数增加方法addFirst(E e)addLast(E e)和add(E e)add(int index,E element)addAll(Collection<? extends E>c)删除方法remove和removeFirstremoveLastremove(int index)remove(Object o)修改元素set(int index Eelement)查找元素getFirst()getLast(原创 2020-08-12 13:41:11 · 344 阅读 · 0 评论 -
ConcurrentHashMap入门到入土
ConcurrentHashMap从入门到入土ConcurrentHashMap的出现,是为了解决hashmap存在的一些问题,尤其是在多线程方面HashMap存在的问题Hashmap线程不安全 在多线程环境下,使用hashMap进行put操作可能会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。Hashtable线程安全但效率低下 Hashtable容器使用Synchronized来保证线程安全,但在线程竞争激烈的情况下,效率低下。 因为当一个线程访问原创 2020-08-07 15:14:06 · 407 阅读 · 0 评论