不知道这章节应该怎么学,完全懵
当 c == '}' || c == ']' || c == ')' 时,才会进入if判断,不是说明这个栈不是空的吗,这里加stack.empty()判断有什么作用呢?
老师,学这个dom方式解析数据我产生了一个疑问,怎么知道这些步骤去解析xml,包括运用的各个类,这些要是老师不讲我只能去百度了,但是如何做到自己能想到,是查阅API文档吗?
老师,我这手写服务器的课程怎么没显示了?列表中查看不了。
老师,这里为啥要返回一个 return null
老师,没有jdk1.8的,连接失效了,还有连接吗,
有返回值类型的泛型方法,不管是静态的还是非静态的,调用的时候一定要加上强转吗?
我没有用强转还是正常输出了。
老师,这个可以用数据流读吗,用readUTF进行读取
删除节点时先判断被删除的元素是否为头结点 若是头结点则将头指针指向下一个元素 但是下一个元素不存在怎么办 是不是没有考虑到
老师,创建节点的时候new Node<>这里有红杠,是为啥
老师,我在调用方法时,泛型里定义的是E,但是到这边之后就成了Object类型,望解答
老师,我用的idea,和老师写的一模一样但是总报这个错误。然后我从网上把老师的源码下下来运行,还是出现这个错误,大概搞明白是没有找到web.xml这个文件,请问该怎么解决,下面这张图是运行老师源码的报错。
package com.xazynl; /** * projectName: NQZ * * @author: 谢新建 * time: 2021/4/4 16:07 * description: * 基于单向链表存取的容器 */ public class MySinglyLinkedList <E > implements MyList<E>{ //定义单向链表中的节点类对象 class Node<E>{ private E item; //储存元素 private Node next; //存储下一个节点对象的地址 Node(E item,Node next){ this.item=item; this.next=next; } } private Node head;//存放链表中的头节点。 private int size;//记录元素个数。 //向链表中添加元素 @Override public void add(E element) { //创建节点 Node<E> node = new Node<>(element,null); //找到尾节点 Node tail=getTail(); //节点的挂接 if (tail==null) this.head=node; else tail.next=node; //记录元素个数 this.size++; } //找到尾节点 private Node getTail(){ //头节点是否存在 if (this.head==null){ return null; } //查找尾节点 Node node=this.head; while (true){ if (node.next==null)break; node=node.next;//移动指针,指向下一个节点 } return node; } //根据元素的位置获取元素 @Override public E get(int index) { //校验index的合法性 this.checkIndex(index); //根据位置获取指定节点 Node<E> node = this.getNode(index); //将该节点中的元素返回 return node.item; } //对index进行校验 private void checkIndex(int index){ if (!(index>=0 && index < this.size)){ throw new IndexOutOfBoundsException("Index"+index+""+this.size); } } //根据位置获取节点 private Node getNode(int index){ Node<E> node = this.head; for (int i=0;i<index;i++){ node=this.head; } return node; } //获取元素个数 @Override public int size() { return this.size; } //根据元素的位置删除元素 @Override public E remove(int index) { //校验index的合法性 this.checkIndex(index); //根据位置找到该节点对象 Node<E> node=this.getNode(index); //获取该节点中对象的元素 E item =node.item; //将该节点对象从单向链表中移除 //判断当前删除节点是否为头节点 if (this.head==node){ this.head=node.next; }else { Node<E> temp=this.head; for (int i=0;i < index - 1;i++){ temp=temp.next; } temp.next=node.next; } node.next=null; //记录元素个数 this.size--; //将元素返回 return item; } public static void main(String[] args) { MySinglyLinkedList<String> mySinglyLinkedList=new MySinglyLinkedList<>(); mySinglyLinkedList.add("a"); mySinglyLinkedList.add("b"); mySinglyLinkedList.add("c"); mySinglyLinkedList.add("d"); mySinglyLinkedList.add("e"); System.out.println(mySinglyLinkedList.size()); System.out.println("----------------"); System.out.println(mySinglyLinkedList.remove(0)); System.out.println("-------------------"); for (int i=0;i< mySinglyLinkedList.size();i++){ System.out.println(mySinglyLinkedList.get(i)); } } }
问题:取值的时候为什么会只取b,我也用老师的源码运行了也是一样的
package com.bjsxt; /* * 定义程序员类 * */ class Programmer{ private String name; public Programmer(String name){ this.name = name; } /* * 打开电脑 * */ public void computer(){ synchronized (this) { try { System.out.println(this.name + "接通电源"); Thread.sleep(500); System.out.println(this.name + "按开机按键"); Thread.sleep(500); System.out.println(this.name + "系统启动中"); Thread.sleep(500); System.out.println(this.name + "系统启动成功"); } catch (InterruptedException e) { e.printStackTrace(); } } } /* * 编码 * */ public void coding(){ synchronized (this){ try { System.out.println(this.name+"双击IDEA"); Thread.sleep(500); System.out.println(this.name+"IDEA启动完毕"); Thread.sleep(500); System.out.println(this.name+"开开心心的写代码"); } catch (InterruptedException e) { e.printStackTrace(); } } } } /* * 打开电脑的工作线程 * */ class Working1 extends Thread{ private Programmer p; public Working1(Programmer P){ this.p = p; } @Override public void run() { this.p.computer(); } } /* * 编写代码的工作线程 * */ class Working2 extends Thread { private Programmer p; public Working2(Programmer P) { this.p = p; } @Override public void run() { this.p.coding(); } } public class TestSyncThread { public static void main(String[] args) { Programmer p = new Programmer("张三"); new Working1(p).start(); new Working2(p).start(); } }
代码反复看了两遍,还是出现异常。
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637