![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础
.辛巴.
集百家之长
展开
-
hashCode和equals
仅为学习后自我记录1、关于hashCodehashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同如果对象的equals方法被重写,那么对象的hashCode也尽量重写,并且产生...转载 2019-01-22 17:24:08 · 82 阅读 · 0 评论 -
HashMap的实现原理(ConcurrentHashMap)
HashMap的实现原理HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一...原创 2019-01-22 17:21:26 · 96 阅读 · 0 评论 -
数据结构之--冒泡排序
冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。但是正常的冒泡排序还可以优化,当某次冒泡操作已经没有可交换的数据时,说明已经完全达到有序了,不用再继续执行后续的冒泡,此时给他一个标签,当当前数据没有发生交换时,退出...原创 2019-07-25 17:13:32 · 122 阅读 · 0 评论 -
数据结构之--插入排序
一组有序的数组,我们向里边添加一个新的数据后,如何保持数据有序呢?首先,这是一个动态排序过程,动态向有序集合中添加数据,通过不断的插入数据保持数据的有序性,于是就有了插入排序。我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序。...原创 2019-07-25 17:30:29 · 133 阅读 · 0 评论 -
数据结构之--线性计数排序
看这篇博客前建议先去了解桶排序桶排序是线性排序一种,因为他的排序算法时间复杂度是线性的,所以我们把这类算法称之为线性排序首先,我们来看桶排序。桶排序,顾名思义,会用到“桶”,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排完序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的了。桶排序时间复杂度是O(n),为什么呢?因为如果要排序的数据有 n 个...原创 2019-07-25 17:47:42 · 136 阅读 · 0 评论