(一)添加元素

对任意位置添加元素

    /**
* 向数组中添加元素
* @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. TP中如何用IF

    将TP中这个容易忘的知识点记下来以便日后翻阅 $memberField = "ID, NAME, MOBILE, MEMBER_STATUS as status, IF (MEMBER_ST ...

  2. vue将页面导出成pdf

    npm i jspdf-html2canvas prinOut(){ // 导出pdf let page = document.querySelector('.app-main'); // page ...

  3. PHP的Session机制解析 2

    在鸟哥的博客看到对php session的过期时间的一篇文章,在此记录. 原文地址:http://www.laruence.com/2012/01/10/2469.html 以下是鸟哥博客原文: 今天 ...

  4. C++ 指针基址1

    char *p=(char *)&n;中括号中为什幺要加个*号 答: &n是一个整型数值,代表变量n的地址,不包含其所保存的数据的类型信息(也就是说只凭借一个地址是不能推测出,该地址所 ...

  5. Java学习之线程通信(多线程(synchronized))--生产者消费者

    分析线程经典案例生产者消费者 /** 共享数据 */ class Resource { private String name; private int count=1; private boolea ...

  6. OSX 创建 randisk(或称 tmpfs)

    创建步骤: #!/bin/bash ramdisk_size_in_mb= mount_point=/private/tmp ramdisk_size_in_sectors=$((${ramdisk_ ...

  7. PAT甲级【2019年3月考题】——A1156 SexyPrimes【20】

    Sexy primes are pairs of primes of the form (p, p+6), so-named since “sex” is the Latin word for “si ...

  8. 【计算机网络】两个网络模型——OSI参考模型和TCP/IP模型

    计算机网络 两个网络模型 计算机网络模型 分层机制----规划通讯细节 层与层之间之间是独立的.屏蔽的,下层为上层提供服务. 一些概念 实体: 任何发送/接收信息的软件/硬件进程. 对等层: 两个不同 ...

  9. [Fw] assembly code in gas syntax

    Address operand syntax There are up to 4 parameters of an address operand that are presented in the ...

  10. Python面向对象初始(三大特征,多态,继承,封装)

    Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...