(一)添加元素

对任意位置添加元素

    /**
* 向数组中添加元素
* @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(二),对封装的数组进行增删改查操作的更多相关文章

  1. SQLAlchemy(二):SQLAlchemy对数据的增删改查操作、属性常用数据类型详解

    SQLAlchemy02 /SQLAlchemy对数据的增删改查操作.属性常用数据类型详解 目录 SQLAlchemy02 /SQLAlchemy对数据的增删改查操作.属性常用数据类型详解 1.用se ...

  2. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作

    后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...

  3. 【OF框架】新建库表及对应实体,并实现简单的增删改查操作,封装操作标准WebApi

    准备 搭建好项目框架及数据库,了解框架规范. 1.数据库表和实体一一对应,表名实体名名字相同,用小写,下划线连接.字段名用驼峰命名法,首字母大写. 2.实体放在Entities目录下,继承Entity ...

  4. Shell数组的增删改查

    Shell数组的增删改查 shell数组的定义及取值: a=(1 2 3) [root@bogon tmp]# echo ${a[*]}  1 2 3 [root@bogon tmp]# echo $ ...

  5. Mybatis学习笔记(二) 之实现数据库的增删改查

    开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...

  6. BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块

    NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...

  7. Ecmall二次开发-增删改查操作

    Ecmall二次开发-增删改查操作 Model目录includes/models 自己添加需要的model class OrdercomplainModel extends BaseModel //类 ...

  8. 如何搭建一个WEB服务器项目(二)—— 对数据库表进行基本的增删改查操作

    使用HibernateTemplate进行增删改查操作 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出 ...

  9. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

随机推荐

  1. 重温HTML和CSS3

    重温Web前端基础 本篇幅中着重文字,只是记录一些自己的见解,巩固下自身基础 网页结构是什么? 结构层 html 导航,列表,段文字,图片,链接,表示层 css 颜色,大小,位置,行为层 JavaSc ...

  2. Maximum of lines in a DataBand

    Hello! I have a problem.I have a DataBand, but I need it to grow only up to 14 lines. If it is beyon ...

  3. byte与base64string的相互转化以及加密算法

    //在C#中 //图片到byte[]再到base64string的转换: Bitmap bmp = new Bitmap(filepath); MemoryStream ms = new Memory ...

  4. HTTP面试题目

    转自:http://m.blog.csdn.net/zhangliangzi/article/details/51336564 1.说一下什么是Http协议? 对器客户端和 服务器端之间数据传输的格式 ...

  5. redis设置密码的问题

    <?php $redis = new redis( ); if( ! $redis -> connect( '192.168.73.128' , 6379 ) ){ exit( 'redi ...

  6. Regular Expression 範例

    Regular expression 被實作於各種語言中,可以用來對字串做 比對 擷取 分隔 這幾類的處理.以下是 JavaScript的處理範例. 各位看官,可以按F12開啟 brower 的 de ...

  7. kmp next数组的模板

    string s; int Next[MAX]; int len; void get_next() { ,j=-; Next[i]=j;//初始化,next[0]=-1:-1表示没有前缀等于后缀. ; ...

  8. linux mysql数据库安装

    1.创建mysql用户账号:groupadd mysqluseradd -d /sbin/nolog -g mysql -M mysql-s /sbin/nologin 表示禁止该用户登录,只需要角色 ...

  9. HDFS学习笔记二

    文章来源于:https://blog.csdn.net/xuejingfu1/article/details/52554174 文件写入staging(分阶段进行) 一个客户端的创建文件的请求并不直接 ...

  10. Vue中子组件数据跟着父组件改变和父组件数据跟着子组件改变的方法

    一,子组件数据跟着父组件改变 父组件的代码 <template> <div class="home"> <img alt="Vue logo ...