老师关于add(int index,Object obj) 插入尾节点总覆盖,能不能帮我看一下,解释麻烦详细一点我基础不太好
package cn.sxt.mylinked; import java.util.LinkedList; //插入索引节点 public class MyLinked04 { Node first;// 第一个节点元素 Node last;// 最后一个节点元素 int size;// 大小 // add public void add(Object object) { // 初始化node节点 Node node = new Node(object); // 判断第一个节点是不是首节点,是则初始化 if (first == null) { // first=null; // last=null; first = node; last = node; } else { // 新节点的前指针指向之前最后一个节点的数据域 node.previous = last; // 新节点的后指针制空 node.next = null; // 原先最后一个节点的最后指针域指向新节点的数据域 last.next = node; // last后移一位,新节点变成last最后一个节点 last = node; } // 添加方法后元素大小加1 size++; } // remove方法 public void remove(int index) { Node temp = getNode(index); // 获取该节点的前一个节点 Node up = temp.previous; // 获取该节点的后一个节点 Node down = temp.next; // 若前节点非空执行,不然会报空指针异常 if (up != null) { up.next = down; } // 若后节点非空执行,不然会报空指针异常 if (down != null) { down.previous = up; } // 若前节点为空 if (up == null) {// index==0 // 将first指向第二个节点,size-1 first = down; size--; } // 若后节点为空 if (down == null) {// index==size-1 last = temp; size--; } } // get方法 public Object get(int index) { // 索引判断 if (index < 0 || index > size - 1) { throw new RuntimeException("索引越界:" + index); } /* * //定义临时节点 Node temp=first; for(int i=0;i<index;i++) { * //如果不进行index判断,则index超出范围后,temp=null,temp.next就空指针异常(null调用了方法) * temp=temp.next; } return temp.element; */ // 对注释优化:提高查找效率 Node temp = getNode(index); return temp.element; } private Node getNode(int index) { Node temp = null; if (index <= (size >> 1)) {// 前部分 temp = first; for (int i = 0; i < index; i++) { temp = temp.next; } } else {// 后部分 temp = last; // 从后往前找 for (int i = size - 1; i > index; i--) { temp = temp.previous; } } return temp; } // toString方法重新写 @Override public String toString() { // 创建StringBuilder对象进行字符串拼接 StringBuilder sb = new StringBuilder("["); // 临时节点 Node temp = first; while (temp != null) { sb.append(temp.element + ","); // 寻找下一个节点 temp = temp.next; } // 将最后一个,改成] sb.setCharAt(sb.length() - 1, ']'); // 返回字符串 return sb.toString(); } // get(int index,Object obj) public void add(int index, Object object) { // 创建新节点 Node newNode = new Node(object); // 获取index位置的节点 Node node = getNode(index); if (node != null) { // 非首节点 if (node.previous != null) { Node preNode = node.previous; preNode.next = newNode; newNode.previous = preNode; node.previous = newNode; newNode.next = node; } // 首节点 if (index==0) { newNode.previous = null; newNode.next = node; node.previous = newNode; first=newNode; //System.out.println(size); // System.out.println(newNode); } //尾节点 if(index!=size-1) { //newNod:胡歌 node:古天乐(前) newNode.previous = last; newNode.next=null; last.next = newNode; last=newNode; } } } // main public static void main(String[] args) { MyLinked04 myLinked = new MyLinked04(); System.out.println("添加方法:"); myLinked.add("欧阳娜娜"); myLinked.add("李沁"); myLinked.add("古天乐"); myLinked.add(3, "胡歌"); System.out.println(myLinked); } }
老师,在执行最后画蓝线的命令,为啥会new一个新的栈帧,栈帧里面是啥
为啥调用后出现以下问题
请问老师为什么我密码输入正确也提示密码错误 检查了好久 这是第二次写 第一次写的时候没出现这个问题
我感觉是获取不到数据库的内容 可无从下手
这个类是不是可以按照java中的那样理解
视频从第三节开始自定义Realm的时候好像没有实现身份(用户名)的校验,
问题:在测试类中只要密码输入正确,用户名无论输入什么值都可以通过身份验证,请问老师这是什么原因呢?
怎么在一行语句里,捕获多种异常呢
老师,方法getImgUrl中返回self.inventory_set.first().color.colorurl这个是怎么理解,为什么用inventory不会报错
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <p>弹性盒子模型</p> <div> <p class="lk">父辈</p> <div> <p class="mn">子级1</p> </div> <div> <p class="m">子级2</p> </div> <div> <p class="n">子级3</p> </div> </div> <br> <p>盒子模型,只涉及:margin,padding,width,height差不多的这几个属性</p> </body> <style> p{ font-weight: 500px; /*对大字进行加粗*/ } .lk{ width:800px; height:800px; font-size: 90px; display:flex; background-color: aquamarine; flex-direction: column; align-items: center; justify-content: center; } /* div>div{ width: 200px; height: 200px; font-size: 20px; background-color: blueviolet; } */ .mn{ color: aquamarine; width: 200px; height: 200px; font-size: 20px; background-color: blueviolet; } .m{ color: aquamarine; width: 200px; height: 200px; font-size: 20px; background-color: blueviolet; } .n{ color: blueviolet; width: 200px; height: 200px; font-size: 20px; background-color: blueviolet; } </style> </html>
老师,下面三个为什么不在上面那个大盒子里面呢?
函授大专在读中。。。学习java之后可以作为一个资历吗
"{:*>8}".format("245") 输出结果"*****245" 他后面不是接的8吗,那应该是8个*才对,为啥结果是五个呀
老师 什么是分布
屏幕截图 2024-04-17 142904.png
报错为什么还能打印出来呢
老师请问:1.当前代码运行下去为什么会出现3处的报错?我一开始并没有规定salary的类型啊,而且整个 过程中并未满足 1 处的条件,且为什么没有报 第12行 错误? 而如果我将 2 放到 1 的前面,程序却能正常运行。 2.将 2 处改为 if int或float(salary) == 0:,输入 0 时程序能正常结束并打印。 #要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资明 细,以及平均薪资 num = 0 s_all = 0 s_average = 0 s_list = [] while True: salary = input('请输入薪资,输入Q结束输入: ') if salary.upper()== 'Q': print('员工总数为: {0},薪资平均数为: {1},薪资明细: {2}'.format(num, s_average, s_list)) break if float(salary)<0: print('薪资不能小于0,请重新输入!') continue if float(salary)>0: num = num + 1 s_all = s_all + float(salary) s_average = s_all / num s_list.append(salary)
老师
已经解决
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637