![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术分享
ljn1018
这个作者很懒,什么都没留下…
展开
-
如何提高链表的查询效率
使用跳表1.链表的变形:跳表。跳表是一种我们不常见的数据结构,但由于其优秀的特性,在工业中,常常被用来代替红黑树,进行查找,插入和删除。Redis的有序集合就是用跳表来实现的。跳表本质上是采用"二分"的思路来改造链表,所以这要求链表必须是有序的。对于传统的链表,即使,其是有序的,查找起来也需要O(n)的时间复杂度。所以,我们在链表增加索引,如下图所示:通过这种方式,当我们在查询6的时候,我们先通过索引,定位6在5之后,再通过指针,指向原始链表,得到6。通过这种方式,查找到6需要5步,原始需要6步。原创 2022-02-09 14:55:35 · 3670 阅读 · 0 评论 -
为什么重写equals()方法,一定要重写hashcode呢
重写equals,不重写hashcode()其实这里,要涉及到equals,和hashcode方法,常常使用在hashmap,插入和查询的时候,假如只重写equals的话,在插入时,将key进行hash后,如果map中已经存在了插入的key的hash值,那么会调用equals比较key的具体值,但是没有重写hashcode的值那么会造成,其实插入的key是相同的,但是因为hachcode不同被再次插入一次不重写equals,重写hashcode()重写hashcode,虽然插入相同的key时ha原创 2021-12-16 14:10:22 · 799 阅读 · 0 评论 -
Java值传递和引用传递
值传递与引用传递1.对基本类型的数据进行操作:由于原始内容和副本都是存储实际值,并且是在不同的栈区,因此形参的操作,不影响原始内容。2.对引用类型的数据进行操作,分两种情况:一种是形参和实参保持指向同一个对象地址,则形参的操作,会影响实参指向的对象的内容。(深拷贝)一种是形参被改动指向新的对象地址(如重新赋值引用),则形参的操作,不会影响实参指向的对象的内容。值传递:在方法被调用时,实参通过形参把它的内容副本传入方法内部,此时形参接收到的内容是实参值的一个拷贝,因此在方法内对形参的任何操作,都原创 2021-12-14 19:54:11 · 86 阅读 · 0 评论 -
java对list进行排序,java对map进行排序(比较器)
java对list进行排序使用Colletions.sort方法import java.util.*;public class Main {public static void main(String[] args) {List listStu = new ArrayList<>();listStu.add(new Student(98));listStu.add(new Student(50));listStu.add(new Student(70));listStu.add原创 2021-12-12 14:50:55 · 2329 阅读 · 0 评论 -
Spring基于xml自动装配
首先看一下Person类@Data@AllArgsConstructor@NoArgsConstructorpublic class Person { private String lastName; private Integer age; private String gender; private String email; private Car car;}可以注意到这个Person类里面有一个自定义类型的属性Car类:@Datapu原创 2021-11-29 09:35:32 · 122 阅读 · 0 评论