Java实现更新顺序表中的指定元素的示例

 更新时间:2023年06月07日 11:32:08   作者:酒國  
本文主要介绍了Java实现更新顺序表中的指定元素的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、思路

1.定义一个 pos 变量为要更新的位置,定义一个 value 变量为更新后的数值.
2.顺序表不能是空的,就肯定不可以更新元素.
3.pos位置要合法,要保证 pos 位置是处在顺序表范围内的.
4.更新功能不需要考虑扩容,因为不涉及到元素的增减.
5.更新的之前先获取到 pos 位置的下标,更新的时候直接将 value 赋值给 pos 位置即可.

二、图解

当前 pos 指向的是 2 下标,即 2 下标就是接下来要更新元素的位置,value 等于 100,即为接下来 pos 位置会更新为 100 。

更新后的图示如下图展示:

可以看到当前的顺序表中的元素依然是 4 个(没有改变),但是在 2 下标位置的元素已经改变了。

1、pos 位置不合法的情况

如上述图片展示出来的情况,pos 位置不能超过顺序表长度不能是负数下标

2、顺序表是空的情况

在当前的数组中没有任何的元素,即为顺序表是空的情况。

之前说过了,在更新元素之前要先获取到更新位置的下标,但是此时根本就没有一个元素,因此也就不可能获取到下标。

三、代码

class EmptyException extends RuntimeException {
    public EmptyException() {
        //这是一个提示顺序表为空的异常
    }
    public EmptyException(String massage) {
        super(massage);
    }
}
// 更新 pos 位置的元素
public void set(int pos, int value) {
    if (isEmpty()) {
        //顺序表有可能是空的 - 抛异常来提示
        //这里要注意的是此方法是用来更新的,即使是空间满了也不需要扩容
        throw new EmptyException("当前顺序表为空!!!");
    }
    //2.pos位置要合法 - 下标不为负数,不超过数组长度
    if (pos < 0 || pos >= this.usedSize) {
        //查找位置的下标可能是负数 - 也可能超过了顺序表的长度 - 抛异常来提示
        throw new PosWrongfulException("set获取元素的时候,pos位置不合法!!!");
    }
    // 开始更新
    this.elem[pos] = value;  //赋值即可
}
public class MyArrayList {
    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList();
        // 测试在顺序表末尾插入一个元素的方法
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        // 测试在顺序表中指定位置插入一个元素
        try{
            arrayList.add(1, 10);//将1下标的位置插入一个10
        }catch (PosWrongfulException e){ //包裹一下可能会抛出的异常
            e.printStackTrace();//如果有异常会提示
        }
        // 输出更新之前的顺序表元素
        arrayList.disPlay();
        System.out.println(); // 换行
        // 测试 set 方法 - 将 1 下标位置的元素的值改为 100
        arrayList.set(1, 100);
        // 打印更新之后的顺序表中的元素
        arrayList.disPlay();
    }
}

可以看到此时 1 下标位置就成功改为了 100。

四、错误

如果 pos 位置不合法 的情况会是什么样的

// 测试 get 方法 - 将 1 下标位置的元素的值改为 100
arrayList.set(4, 100);

如上述代码所示,在 4 下标插入一个 100,因为顺序表最大的下标是 3 因此此时超过了顺序表的长度,即为不合法的情况。

可以看到此处就抛出了一个 位置不合法的异常。

如果 顺序表为空 的情况会是什么样的?

将之前写的在顺序表中插入元素的代码注释后,此时顺序表中就是空的了。

当前抛出了一个顺序表为空的异常。

到此这篇关于Java实现更新顺序表中的指定元素的示例的文章就介绍到这了,更多相关Java 更新顺序表的指定元素内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis-plus apply函数使用场景分析

    Mybatis-plus apply函数使用场景分析

    Mybatis-plus 里面的 apply方法 是用于拼接自定义的条件判断,自定义时间查询,根据传进来的开始日期,查询所有该日期是数据,但是数据库中保存是时间,所以需要使用apply查询方式并格式化,这篇文章给大家介绍Mybatis-plus apply函数使用,感兴趣的朋友一起看看吧
    2024-02-02
  • Java泛型 <T> T、 T、<T>的用法小结

    Java泛型 <T> T、 T、<T>的用法小结

    T在Java泛型中,被称作类型变量, 有的方法返回值是<T> T,有的是T,区别在哪里,本文主要介绍了Java泛型 <T> T、 T、<T>的用法小结,具有一定的参考价值,感兴趣的可以了解下
    2023-12-12
  • idea中断点类型之All和Thread的区别介绍

    idea中断点类型之All和Thread的区别介绍

    使用all模式对于程序中含有多个线程来说,会将多个线程都阻塞在断点,此时所有的线程都执行到此处,在最后一个线程执行到此处是会发生暂停,在这之前的线程会继续执行到任意位置,本文给大家详细介绍下idea中断点类型之All和Thread的区别,感兴趣的朋友一起看看吧
    2022-03-03
  • Spring Cloud原理详解

    Spring Cloud原理详解

    今天小编就为大家分享一篇关于Spring Cloud原理详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • SpringBoot与Redis的令牌主动失效机制实现

    SpringBoot与Redis的令牌主动失效机制实现

    本文详细介绍了基于SpringBoot和Redis实现令牌主动失效机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • 详解如何把Java中if-else代码重构成高质量代码

    详解如何把Java中if-else代码重构成高质量代码

    这篇文章主要介绍了详解如何把Java中if-else代码重构成高质量代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 使用Spring Validation实现数据校验的代码详解

    使用Spring Validation实现数据校验的代码详解

    在现代Web应用开发中,数据校验是不可忽视的重要环节,Spring提供了强大的数据校验框架——Spring Validation,可以有效提升数据输入的安全性与应用的稳定性,本文将介绍如何使用Spring Validation进行数据校验,帮助您深入理解和灵活应用这一技术
    2024-11-11
  • springboot使用yml文件配置多环境方式(dev、test、prod)

    springboot使用yml文件配置多环境方式(dev、test、prod)

    这篇文章主要介绍了springboot使用yml文件配置多环境方式(dev、test、prod),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • java中的数组初始化赋初值方式

    java中的数组初始化赋初值方式

    这篇文章主要介绍了java中的数组初始化赋初值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 详解Spring Boot 项目部署到heroku爬坑

    详解Spring Boot 项目部署到heroku爬坑

    这篇文章主要介绍了详解Spring Boot 项目部署到heroku爬坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08

最新评论