会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132600个问题
JAVA 全系列/第二十一阶段:分布式医疗云平台/收费管理前后端开发(旧) 24556楼

package com.bjsxt.test3;

/**
 * 基于双向链表实现元素存取的容器
 * @param <E>
 */
public class MyDoubleLinkedList<E> implements MyList<E>{

    //定义双向链表的节点对象
    class Node<E>{
        E item;//记录元素
        Node<E> prev;//记录前一个节点对象
        Node<E> next;//记录后一个节点对象

        public Node(E item, Node<E> prev, Node<E> next) {
            this.item = item;
            this.prev = prev;
            this.next = next;
        }
    }
    private Node head;//记录头节点
    private Node tail;//记录尾节点
    private int size;//记录元素个数
    /**
     *向双向链表中添加元素
     * @param element
     */
    @Override
    public void add(E element) {

        this.LinkLast(element);
    }

    //将节点对象添加到双向链表的尾部
    private void LinkLast(E element){
        //获取尾节点
        Node t=this.tail;
        Node<E> node=new Node<>(element,t,null);
        //将新节点定义为尾节点
        this.tail=node;
        if(t==null){
            this.head=node;
        }else{
            this.tail=node;
        }
        this.size++;

    }

    /**
     * 根据指定位置获取元素
     * @param index
     * @return
     */
    @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+"size:"+this.size);
        }
    }
    //根据位置获取指定节点对象
    private Node getNode(int index){
        //判断当前位置距离头或者尾哪个节点更近
        if(index < ( this.size >> 1 ) ){
            Node node=this.head;
            for(int i=0;i<index;i++){
                node=node.next;
            }
            return node;
        }else{
            Node node=this.tail;
            for(int i=this.size-1;i>index;i--){
                node=node.prev;
            }
            return node;
        }

    }
    /**
     * 返回元素的个数
     * @return
     */
    @Override
    public int size() {
        return this.size;
    }

    /**
     * 根据指定位置删除元素
     * @param index
     * @return
     */
    @Override
    public E remove(int index) {
        //对index进行合法性校验
        this.checkIndex(index);
        //根据指定位置获取节点对象
        Node<E> node=this.getNode(index);
        //获取节点对象中的元素
        E item=node.item;
        //判断当前节点是否为头节点
        if(node.prev==null){
            this.head=node.next;
        }else{
            //完成当前节点的直接前驱节点和当前节点的直接后继节点的挂接
            node.prev.next=node.next;
        }
        //判断当前节点是否为尾节点
        if(node.next==null){
            this.tail=node.prev;
        }else{
            //完成当前节点的直接后继节点和当前节点的直接前驱节点的挂接
            node.next.prev=node.prev;
        }
        //当前节点断掉与它直接前驱节点的连接
        node.prev=null;
        //当前节点断掉与它直接后继节点的连接
        node.next=null;
        node.item=null;
        //记录元素个数
        this.size--;
        return item;
    }

    public static void main(String[] args) {
        MyList<String> myList=new MyDoubleLinkedList<>();
        myList.add("a");
        myList.add("b");
        myList.add("c");
        myList.add("d");
        System.out.println(myList.remove(0));
        System.out.println(myList.size());
        for(int i=0;i<myList.size();i++){
            System.out.println(myList.get(i));
        }
    }
}


屏幕截图 2021-01-07 170121.png

老师 我看了半天也没看出哪里错了 62行和144行都没有问题呀 为啥会报空指针异常

JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 24558楼
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 24559楼
JAVA 全系列/第六阶段:项目管理与SSM框架/Mybatis 24560楼
JAVA 全系列/第十八阶段:亿级高并发电商项目_架构/编码(旧)/电商:基于json数据格式完成商品规格参数模板管理 24561楼

我之前卸载了数据库 按照教程做滴 之后又安装了 和这个有关吗?在学mybatis做项目mybatisdemo时 就有这个报警,其他的就没有了

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)

 at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:612)

 at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:862)

 at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:917)

 at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:927)

 at com.bjsxt.dao.impl.UsersDaoImpl.insertDesigns(UsersDaoImpl.java:28)

 at com.bjsxt.service.impl.UsersServiceImpl.addUsers(UsersServiceImpl.java:25)

 at com.bjsxt.test.AddUsersTest.main(AddUsersTest.java:17)

Caused by: java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)

 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)

 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)

 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)

 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:864)

 at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1707)

 at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1217)

 at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2189)

 at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2220)

 at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2015)

 at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:768)

 at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)

 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

 at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

 at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

 at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385)

 at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:323)

 at java.sql.DriverManager.g

辛苦老师帮忙看一下啦

JAVA 全系列/第六阶段:项目管理与SSM框架/Spring 24562楼

老师,我做练习的时候,遇到问题,我明明写了两个参数但是它提示我还少一个参数

# 定义战士类
class Warrior:
    def __init__(self):
        self.health = 50
        self.attack = 5
        self.is_alive = True


# 定义骑士类
class Knight(Warrior):
    def __init__(self):
        super().__init__()
        self.attack = 7


# 定义军队
class Army:
    def __init__(self):
        self.arm = []

    def add_units(self, soldier, number):
        for i in range(number):
            new_unit = soldier
            self.arm.append(new_unit)
        return self.arm


# 定义战斗类
class Battle:
    def fight(self, armclass1, armclass2):
        arm1 = armclass1.arm
        arm2 = armclass2.arm
        while len(arm1) > 0 and len(arm2) > 0:
            if fight1(arm1[0], arm2[0]) == True:
                arm2.remove(arm2[0])
            else:
                arm1.remove(arm1[0])
        if len(arm1) > 0:
            return True
        else:
            return False


def fight1(unit_1, unit_2):
    while unit_1.is_alive and unit_2.is_alive:
        unit_2.health -= unit_1.attack
        if unit_2.health <= 0:
            unit_2.is_alive = False
            break
        unit_1.health -= unit_2.attack
        if unit_1.health <= 0:
            unit_1.is_alive = False
            break
    return unit_1.is_alive


if __name__ == '__main__':
    # battle tests
    my_army = Army()
    my_army.add_units(Knight, 3)

    enemy_army = Army()
    enemy_army.add_units(Warrior, 3)

    Battle.fight(my_army, enemy_army)

    army_3 = Army()
    army_3.add_units(Warrior, 20)
    army_3.add_units(Knight, 5)

    army_4 = Army()
    army_4.add_units(Warrior, 30)

    battle = Battle()

屏幕截图 2021-02-20 140158.png

Python 全系列/第一阶段:Python入门/面向对象 24563楼
JAVA 全系列/第二十一阶段:分布式医疗云平台/项目环境搭建(旧) 24565楼
JAVA 全系列/第二十八阶段:高并发实战和BATJ大厂面试重难点/Java并发编程核心 24566楼
JAVA 全系列/第八阶段:SpringBoot与MybatisPlus/MybatisPlus 24567楼
WEB前端全系列/第十四阶段:React知识体系/React基础知识 24569楼
JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 24570楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637