(一)添加元素

对任意位置添加元素

    /**
* 向数组中添加元素
* @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. [CSP-S模拟测试]:attack(支配树+LCA+bitset)

    题目传送门(内部题55) 输入格式 第一行,包含两个整数:$n,m,q$,表示敌军城市数.路数和情报数.接下来$m$行,每行包含两个整数:$u,v$,表示从$u$到$v$包含一条单向道路.接下来$q$ ...

  2. 105、TensorFlow的变量(一)

    import tensorflow as tf mammal = tf.Variable("Elephant", tf.string) ignition = tf.Variable ...

  3. jmeter 测试结果分析术语

    label:定义http请求名称. samples:测试中一共发出的请求. average:平均响应时长.默认是单个request的平均响应时长. median:中位数,50%用户的响应时长. 90% ...

  4. DIV置底层或置最高层的方法下拉菜单被挡住

    网站常会用到一些 下拉菜单,,幻灯片,,,飘浮广告等. 但经常会发现.幻灯片会挡住下拉菜单或者飘浮广告微信开店等. 解决办法有下 第一,可将幻灯片所在DIV 置于最底层.添加CSS如下 style=& ...

  5. python面试如何以相反顺序展示一个文件的内容?

    >>> for line in reversed(list(open('Today.txt'))): print(line.rstrip())containeritertools D ...

  6. 【目录】Identityserver 4 老张的哲学

    随笔分类 - .IdentityServer4 从壹开始 [ Ids4实战 ] 之四 ║ 用户数据管理 & 前后端授权联调 摘要: 前言 哈喽~~~ 大家周一好!夏天到了,大家舒服了没有,熟话 ...

  7. elasticsearch Mapping使用自定义分词器

    创建索引及配置分析器 PUT /my_index { "settings": { "analysis": { "char_filter": ...

  8. #Ubuntu16.0.4 LTS 安装RabbitMQ

    1.ubuntu下安装配置rabbitmq-server服务器环境:ubuntu16.0.4(向下兼容14.0.4)软件版本:RabbitMQ 3.7.5 .Erlang 20.1.7参考文档:htt ...

  9. mysql limit 数据重复及遗漏

    某天写了一段CRUD,提测给QA,后来想起来忘记按规则排序了,然后修改了代码提交,这个时候QA扔给我一条狗,不,是一个BUG. 内心一片忧伤,CRUD也有BUG啊,怎么办怎么办,赶紧看看去. BUG描 ...

  10. shell巡检草拟

    #!/bin/bash phy_cpu=$(cat /proc/cpuinfo | grep "physical id"|sort | uniq | wc -l) logic_cp ...