基于java构造方法Vector修改元素源码分析
作者:叫我王员外就行 发布时间:2023-11-25 10:54:56
标签:java,构造方法,Vector,修改元素
(注意:本文基于JDK1.8)
前言
增删改查,修改元素,Vector提供了3个方法,包括迭代器中的一个,不过本文只分析Vector自身的两个修改元素的方法,迭代器中的方法将单独分析
set(int,E)方法分析
public synchronized E set(int index, E element) {
if (index >= elementCount)
throw new ArrayIndexOutOfBoundsException(index);
E oldValue = elementData(index);
elementData[index] = element;
return oldValue;
}
用于修改某个下标的方法,该方法使用synchronized修饰,这是为了保护共享变量elementData被多个线程同时修改,在同一时刻只有一个线程可以执行该方法,其它未获得对象锁的线程将会阻塞在方法的入口,等待对象锁的释放,传入的参数index表示要修改哪个下标的元素,传入的参数element表示要修改成哪个新的元素对象
1、检查下标是否合法
合法的下标,必须是小于Vector对象持有的elementCount数的,因为只有0到elementCount-1的下标才保存着元素,其它下标均会抛出一个ArrayIndexOutOfBoundsException对象,用于提示用户,传入的下标有问题……
2、获取当前下标处已保存的元素对象
使用elementData()方法,传入下标进去即可,获得的旧元素对象,将临时保存在局部变量oldValue中
3、将新的元素对象更新到指定下标处
只需elementData的下标index处,赋值为新的元素对象即可
4、向调用者返回旧的元素对象
setElementAt(E,int)方法分析
public synchronized void setElementAt(E obj, int index) {
if (index >= elementCount) {
throw new ArrayIndexOutOfBoundsException(index + " >= " +
elementCount);
}
elementData[index] = obj;
}
除了 * 的将新的元素对象作为第一个参数外,还有一个重要的区别是,此方法并不会返回旧的元素对象!!
来源:https://blog.csdn.net/cadi2011/article/details/116545546


猜你喜欢
- 本文实例分析了Android编程之TextView的字符过滤功能。分享给大家供大家参考,具体如下:TextView可以设置接受各式各样的字符
- 本文实例为大家分享了C#实现QQ聊天窗口的具体代码,供大家参考,具体内容如下分析需要两个TextBox,一个用于显示消息,一个用于编辑消息需
- springboot使用mybatis一对多的关联查询由于刚开始写java不久,对sql语句的熟悉度还是不够熟练,虽然现在使用的mybati
- 在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>、DataTa
- 反射和配置文件学习 Spring 的时候,虽然可以知道是通过反射和配置文件的方式来获取 JavaBean 对象,但是一直没有机会自己尝试一次
- mybatis官网中文文档:https://mybatis.org/mybatis-3/zh/sqlmap-xml.htmlmybatis-
- 说明:当程序中出现频繁变化的数据时,如果采用认为的方式进行修改并且编译打包则会导致代码的耦合性较高,不便于维护!所以能否为属性动
- 本类适用于比较2个字符的相似度,代码如下:using System;using System.Collections.Generic;usi
- 什么是过滤器过滤器 Filter 基于 Servlet 实现,过滤器的主要应用场景是对字符编码、跨域等问题进行过滤。Servlet 的工作原
- 如今,手机应用渗透到各行各业,数量难以计数,其中大多数应用都会使用到网络,与服务器的交互势不可挡,那么android当中访问网络有哪些方式呢
- 什么是通用Mapper通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不需要编写SQL,不需要在DAO中增加方法
- 人机交互过程中,当我们需要机器给我们反馈不确定的数字结果时,就会需要用到随机数了,那么,在Java中,我们应当如何来生成并使用随机数呢?一、
- 本文实例讲述了Android编程重写ViewGroup实现卡片布局的方法。分享给大家供大家参考,具体如下:实现效果如图:实现思路1. 重写o
- 一.IDEA开发环境1.pom文件设置<properties> <maven.compiler.
- 在 Spring 容器中,两个 Bean 之间除了通过 <ref> 建立依赖关系外,还存在着一些特殊关系。1 继承在
- 本文实例讲述了java 线程方法join简单用法。分享给大家供大家参考,具体如下:虽然关于讨论线程join方法的博客已经很多了,不过个人感觉
- 一、访问控制url匹配在前面讲解了认证中所有常用配置,主要是对http.formLogin()进行操作。而在配置类中 http.author
- PDF文件包(Portfolio)允许用户将多种不同类型的文件如Word、Excel、PDF、PowerPoint和图片等集合到一个PDF文
- 一、概述在微服务架构中,我们将系统拆分成了很多服务单元,各单元的应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依
- 一、概述;从字面上讲,就是停止这个世界,看到这个字眼,就觉得这是可怕的事情,那到底什么是stop-the-world?stop-the-wo