你好,我已经完成了接口(和每个方法)

  public   interface List
    {
        public boolean isEmpty();
    
        public int size();
    
        public void insertFirst(Object data);
    
        public void insertLast(Object data);
    
        public Object removeFirst() throws ListEmptyException;
    
        public Object removeLast() throws ListEmptyException;
    }

我有一个带有名字列表和它的构造函数以及所有这些方法的类. 我想创建一个方法,名为intertprelast(使用我从接口中完成的所有方法),这样它就会在列表中插入一个新 node 作为prelast.如果它不能被插入,则Insert将抛出异常.

我做的是: 1.我创建一个新的类ListTooSmallException

public class ListTooSmallException extends Exception {
        public ListTooSmallException(String message) {
            super(message);
        }
    }

2.我把方法加到了类表上,但我不知道该怎么做才能得到最后一个

public void insertprelast(Object obj) throws ListTooSmallException {
    
      

    if (obj == null) {
        throw new ListTooSmallException(" wrong");
    } else {
       // i dont know how to do it  
    }
}

推荐答案

其思想是从列表中删除最后一项,并保留对它的引用,然后在末尾插入给定的参数,最后将保存的 node 添加回末尾.

大概是这样的:

public void insertPreLast(Object obj) throws ListTooSmallException {
    if (isEmpty()) {
        throw ListTooSmallException("List cannot be empty when calling insertPreLast");
    }
    Object saved = removeLast();
    insertLast(obj);
    insertLast(saved);
}

Java相关问答推荐

如何用javac编译Java类,即使对像java.lang.*这样的基本类也没有任何依赖关系?

我可以从Java模块中排除maven资源文件夹吗?

将成为一个比较者.比较…在现代Java中,编译器会对`CompareTo`方法进行优化吗?

使用标记时,场景大纲不在多个线程上运行

如何配置ActiveMQ Artemis以使用AMQP 1.0和其他协议与Java

PDFBox未加载内容

Java SSLKeyManager出厂密码

有没有可能在时间范围内得到多种解决方案?

将关闭拍卖的TimerService

错误:未找到扩展元素在JBossEAP 7.2中安装FUSE时出错

Java创建带有扩展通配符的抽象处理器

如何获得凌空cookies ,并设置它在下一个请求- android

插入中的JOOQ序列,设置为VS值

无法在IntStream上应用Collectors.groupingBy

如何使用Java对随机生成的字母数字优惠券代码进行过期设置

如何将RESTAssured';S的Http标题转换为<;字符串、字符串和>的映射?

使用同步方法中的新线程调用同步方法

java.lang.ClassCastException:com.google.firebase.FirebaseException无法转换为com.google.fire base.auth.FirebaseAuthException

如何使用命令行为Java应用程序生成烟雾测试用例

Spring Boot应用程序中的自定义constraintvalidator不会被调用