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数 ...
随机推荐
- [CSP-S模拟测试]:attack(支配树+LCA+bitset)
题目传送门(内部题55) 输入格式 第一行,包含两个整数:$n,m,q$,表示敌军城市数.路数和情报数.接下来$m$行,每行包含两个整数:$u,v$,表示从$u$到$v$包含一条单向道路.接下来$q$ ...
- 105、TensorFlow的变量(一)
import tensorflow as tf mammal = tf.Variable("Elephant", tf.string) ignition = tf.Variable ...
- jmeter 测试结果分析术语
label:定义http请求名称. samples:测试中一共发出的请求. average:平均响应时长.默认是单个request的平均响应时长. median:中位数,50%用户的响应时长. 90% ...
- DIV置底层或置最高层的方法下拉菜单被挡住
网站常会用到一些 下拉菜单,,幻灯片,,,飘浮广告等. 但经常会发现.幻灯片会挡住下拉菜单或者飘浮广告微信开店等. 解决办法有下 第一,可将幻灯片所在DIV 置于最底层.添加CSS如下 style=& ...
- python面试如何以相反顺序展示一个文件的内容?
>>> for line in reversed(list(open('Today.txt'))): print(line.rstrip())containeritertools D ...
- 【目录】Identityserver 4 老张的哲学
随笔分类 - .IdentityServer4 从壹开始 [ Ids4实战 ] 之四 ║ 用户数据管理 & 前后端授权联调 摘要: 前言 哈喽~~~ 大家周一好!夏天到了,大家舒服了没有,熟话 ...
- elasticsearch Mapping使用自定义分词器
创建索引及配置分析器 PUT /my_index { "settings": { "analysis": { "char_filter": ...
- #Ubuntu16.0.4 LTS 安装RabbitMQ
1.ubuntu下安装配置rabbitmq-server服务器环境:ubuntu16.0.4(向下兼容14.0.4)软件版本:RabbitMQ 3.7.5 .Erlang 20.1.7参考文档:htt ...
- mysql limit 数据重复及遗漏
某天写了一段CRUD,提测给QA,后来想起来忘记按规则排序了,然后修改了代码提交,这个时候QA扔给我一条狗,不,是一个BUG. 内心一片忧伤,CRUD也有BUG啊,怎么办怎么办,赶紧看看去. BUG描 ...
- shell巡检草拟
#!/bin/bash phy_cpu=$(cat /proc/cpuinfo | grep "physical id"|sort | uniq | wc -l) logic_cp ...