Arrays(二),对封装的数组进行增删改查操作
(一)添加元素
对任意位置添加元素
/**
* 向数组中添加元素
* @param e 元素e
* @param index 插入元素的在数组中的位置
* @return 添加结果
*/
public void addElement(int index,int e){
if(size ==data.length){
throw new IllegalArgumentException("Add Fail");
}
if(index<0 || index >size){
throw new IllegalArgumentException("Add Fail");
} for (int i=size-1;i>=index;i--){
data[i+1]=data[i];//eg data[3]=data[2]s
}
data[index]=e;
size++;//维护数组容量
}
对于数组第一个位置array[0]号位置添加元素,可以复用上述的代码,只需要将index 设置为0即可
/**
* 将元素添加到数组第一个位置
* @param e 待添加元素
*/
public void addFirstElement(int e){
addElement(0,e);
}
对于数组的最后一个位置array[size-1]号位置添加元素,依然可以复用,将index设置为size即可
ps:因为size容量的大小维护在添加元素的时候有size++操作,
/**
* 将元素添加到数组最后一个位置
* @param e 待添加元素
*/
public void addLastElement(int e){
addElement(size,e);
}
二、删除元素
对于给定位置,删除元素(仅移除查找出的一个元素)
// 从数组中删除index位置的元素, 返回删除的元素
public int remove(int index){
if(index < 0 || index >= size)
throw new IllegalArgumentException("Remove failed. Index is illegal."); int ret = data[index];
for(int i = index + 1 ; i < size ; i ++){
data[i - 1] = data[i];
}
size --;
return ret;
} // 从数组中删除第一个元素, 返回删除的元素
public int removeFirst(){
return remove(0);
} // 从数组中删除最后一个元素, 返回删除的元素
public int removeLast(){
return remove(size - 1);
} /**
* 根据元素获得对应的索引位置
* @param e 传入元素
* @return 查找到 返回索引位置 未查找到 返回-1
*/
public int getIndex(int e){
for (int i=0;i<size;i++){
if(e==data[i]){
return i;
}
}
return -1;
} /**
* 移除元素
* @param e
*/
public void removeElement(int e){
int index=findElement(e); if(index!=-1){
remove(index);
}
} /**
* 查找元素所在位置的索引
* @param e
* @return
*/
public int findElement(int e){
for (int i=0;i<size;i++){
if(data[i]==e)
return i;
}
return -1;
}
三、修改指定位置的元素
/**
* 给对应位置更新元素
* @param index 索引
* @param e 元素
*/
public void setElement(int index,int e){
if (index<0 || index>=size){
throw new IllegalArgumentException("set Fail");
}
data[index]=e;
}
四、查询相关的元素
根据元素查看元素所在数组索引的位置
/**
* 根据元素获得对应的索引位置
* @param e 传入元素
* @return 查找到 返回索引位置 未查找到 返回-1
*/
public int getIndex(int e){
for (int i=0;i<size;i++){
if(e==data[i]){
return i;
}
}
return -1;
}
根据索引位置返回元素
/**
* 根据索引获得对应的元素
* @param index
* @return
*/
public int getElement(int index){
if(index<0 ||index >=size){
throw new IllegalArgumentException("find Fail");
}
return data[index];
}
Arrays(二),对封装的数组进行增删改查操作的更多相关文章
- SQLAlchemy(二):SQLAlchemy对数据的增删改查操作、属性常用数据类型详解
SQLAlchemy02 /SQLAlchemy对数据的增删改查操作.属性常用数据类型详解 目录 SQLAlchemy02 /SQLAlchemy对数据的增删改查操作.属性常用数据类型详解 1.用se ...
- 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作
后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...
- 【OF框架】新建库表及对应实体,并实现简单的增删改查操作,封装操作标准WebApi
准备 搭建好项目框架及数据库,了解框架规范. 1.数据库表和实体一一对应,表名实体名名字相同,用小写,下划线连接.字段名用驼峰命名法,首字母大写. 2.实体放在Entities目录下,继承Entity ...
- Shell数组的增删改查
Shell数组的增删改查 shell数组的定义及取值: a=(1 2 3) [root@bogon tmp]# echo ${a[*]} 1 2 3 [root@bogon tmp]# echo $ ...
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...
- Ecmall二次开发-增删改查操作
Ecmall二次开发-增删改查操作 Model目录includes/models 自己添加需要的model class OrdercomplainModel extends BaseModel //类 ...
- 如何搭建一个WEB服务器项目(二)—— 对数据库表进行基本的增删改查操作
使用HibernateTemplate进行增删改查操作 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出 ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
随机推荐
- PWA 应用
1. 使用例子,vue官网,在手机浏览器器打开时,保存在桌面那个应用.还有饿了么网站也是PWA应用.
- (64)C# 预处理器指令
预处理器命令从来不会被翻译为可执行代码中的命令,但会影响编译过程的各个方面.例如:使用预处理器指令可以禁止编译器编译代码的某一部分,如果计划发布两个版本的代码,即基本版本和有更多功能的企业版本,即可以 ...
- sqlserver数据库里怎样设置datetime类型的小数位数为3位
要用datetime2(7)这种类型!将7改为3就行了
- Python中的浮点数原理与运算分析
Python中的浮点数原理与运算分析 本文实例讲述了Python中的浮点数原理与运算.分享给大家供大家参考,具体如下: 先看一个违反直觉的例子: >>> s = 0. > ...
- 同步架构OR异步架构
把智能系统比喻成KFC营业厅,处理器是窗口和窗口后面的服务员(把一个窗口当作一个核心),指令集是后面排队的人,窗口是数据吞吐量.当中午就餐人多的时候,一个窗口肯定忙不过来,这时候可以增加窗口,有两种方 ...
- Use sed and awk to prettify json
$ cat prettify.sed s/,/,\r\n/g s/\[/\r\n\[\r\n/g s/\]/\r\n\]\r\n/g s/{/\r\n{\r\n/g s/}/\r\n}\r\n/g $ ...
- 正则表达式中(?:pattern)、(?=pattern)、(?!pattern)、(?<=pattern)和(?<!pattern)
(?:pattern) ()表示捕获分组,()会把每个分组里的匹配的值保存起来,从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推 (?:)表示非捕获分组,和捕获分组唯一 ...
- python3中装饰器的用法总结
装饰器预备知识点 1 函数赋值给一个变量 函数名可以像普通变量一样赋值给另一个变量. def test(): print("i am just a test function") ...
- 深入理解__proto__ 、constructor和prototype的关系
深入理解__proto__ .constructor和prototype的关系 2013-11-12 09:56 1390人阅读 评论(3) 收藏 举报 分类: 前端之Javascript(59) ...
- for,while,do while语句区别以及常见死循环格式
1.三种循环语句的区别: do...while循环至少执行一次循环体. 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句. for循环和while循环的区别: 如果你想在循环 ...