
java数据结构
pc彭诚诚的博客
这个作者很懒,什么都没留下…
展开
-
数据结构之数组,栈,链表,队列,树,图,堆,散列表
1、数组数组是可以在内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。优点:1.按照索引查询元素速度快2.按照索引遍历数组方便缺点:1.数组的大小固定后就无法扩容了2.数组只能存储一种类型的数据3.添加,删除的操作慢,因为要移动其他的元素。适用场景:频繁查询,对存储空间要求不大,很少增加和删除的情况。...原创 2019-10-22 17:37:57 · 1581 阅读 · 0 评论 -
乐观锁和悲观锁
悲观锁(多写场景)总是假设最坏的情况 ,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占...原创 2019-10-22 16:47:31 · 122 阅读 · 0 评论 -
散列表(Hash table,也叫哈希表)
散列表是根据键(Key)而直接访问在内存存储位置的数据结构散列函数:顾名思义,它是一个函数。如果把它定义成 hash(key) ,其中 key 表示元素的键值,则 hash(key) 的值表示经过散列函数计算得到的散列值。特点:确定性。如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。散列碰撞(collision)。散列函数的输入和输出不是唯一对应关...原创 2019-10-22 16:22:17 · 794 阅读 · 0 评论