当前位置:   article > 正文

2024年Java最新Java算法基础 - 单链表详解(文末有配套视频)(2),2024Java面试题知识点总结_链表 java

链表 java

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

MySQL全家桶笔记

还有更多面试复习笔记分享如下

Java架构专题面试复习

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

import entity.Customer;

class CustNode{

public Customer data;

}

CustNode类里面维护一个顾客的属性,为了方便起见,就直接用public了,反正我们自己用用的,无所谓。

步骤 3 排队打饭

============================================================================

可是这样也没用啊,这个类最多就是维护一个顾客的信息,没办法保存多个顾客啊。这可愁死我啦,想了老半天也没想出办法来。于是,我就去请教老板,老板正在炒菜,没空搭理我,但是也没赶我走。

“这样吧,马上会有很多顾客来取餐,想不出来就先放放,你在这帮我看着。”老板说。

“让我看排队啊,这有啥意思哦?”我虽然满腹牢骚,但还是照做了,一边拿出手机刷刷微博,一 边看着顾客在排队取餐。

没想到,看着看着,我突然有了灵感。

步骤 4 从一个顾客联系到另一个顾客

=====================================================================================

image

顾客A,B,C三个人在排队,顾客A知道他前面的是顾客B,顾客B知道他前面的是顾客C。那么从程序的角度来看,A里面肯定有一个属性是B的引用,B里面肯定有一个属性是C的引用。

那么,我只要在CustNode里面维护下一个数据的引用,不就可以实现在一个类里面保存多个顾客了吗?

步骤 5 加一个next字段

=================================================================================

class CustNode{

public Customer data;

public CustNode next;

}

next就代表下一个数据。

步骤 6 有参构造方法

==============================================================================

为了方便起见,我写一个有参数的构造方法,这样的好处就是new的时候直接就可以给data赋值了。

class CustNode{

public Customer data;

public CustNode next;

public CustNode(Customer data){

this.data = data;

}

}

步骤 7 用一个新的类维护CustNode

========================================================================================

我盯着CustNode类看了半天,发现一个事情,就是如果我用这个类,最多只能装两个顾客,一个data,一个next。如果再装,就有点难度了。所以,我需要再写一个类,来维护CustNode,然后再提供一个一个add方法和display方法,分别用来添加和展示顾客的数据。

我憋了半天终于把代码写出来了。

步骤 8 TuziLinkedList.java

===========================================================================================

package tool;

import entity.Customer;

import tool.CustNode;

public class TuziLinkedList{

public CustNode firstNode; //第一个节点

public CustNode currentNode;//当前的节点

//新增的方法

public void add(Customer cst){

//将数据用节点类包装好,这样才能实现下一个数据的指向

CustNode data = new CustNode(cst);

//先判断是否是第一个节点

if(this.firstNode == null){

this.firstNode = data;

this.currentNode = data;

}else{

//不是第一个节点,就指向当前节点的下一个节点,即currentNode.next

this.currentNode.next = data;

//因为已经指向下一个了,所以当前节点也要移动过来

this.currentNode = data;

}

}

//展示所有节点

public void display(){

//第一步,肯定是展示第一个节点(this其实可以省略的)

if(firstNode != null){

System.out.println(firstNode.data.getName());

//然后循环,一直寻找next是否为空

CustNode node = firstNode.next;

while(node != null ){

String name = node.data.getName();

System.out.println(name);

//循环的最后,再指向下一个节点,继续下一轮

node = node.next;

}

}

}

}

步骤 9 设计思路

============================================================================

image

步骤 10 原来这就是单链表

=================================================================================

后来查了资料才知道,哦,原来这个属于一种数据结构,叫做链表结构。

步骤 11 Customer.java

======================================================================================

我修改了一些类的访问权限和代码,顾客类针对name增加了get方法和set方法。

package entity;

public class Customer {

String name; // 客户姓名

String sex; //性别

String birthDate; //生日

String phoneNumber; //电话号码

int status; //客户状态(1:正常,2:不正常)

总结

面试难免让人焦虑不安。经历过的人都懂的。但是如果你提前预测面试官要问你的问题并想出得体的回答方式,就会容易很多。

此外,都说“面试造火箭,工作拧螺丝”,那对于准备面试的朋友,你只需懂一个字:刷!

给我刷刷刷刷,使劲儿刷刷刷刷刷!今天既是来谈面试的,那就必须得来整点面试真题,这不花了我整28天,做了份“Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”

image

且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

ndra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。

[外链图片转存中…(img-JB3J5Hjx-1714919373597)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/777348
推荐阅读
相关标签
  

闽ICP备14008679号