面向对象数组的操作(增删改查)
数组对象类
1.数组的元素插入
2.数组的元素的删除
3.数组元素的修改
4.数组元素的查看
5.数组元素的遍历
6.数组元素的长度
package array;
public class ArrayUtil {
//用于存储整形数据的数组
private int[] elements;
//重写构造方法
public ArrayUtil(){
//初始化数组
elements=new int[0];
}
/******** 数组插入元素 **************/
/**
* 向数组任意位置插入元素
* @param number
* @param element
* @return
*/
public int[] add(int number,int element){
//判断插入位置的合理性
if(number < 0 || number >elements.length){
throw new RuntimeException("下标越界");
}
//创建一个新的数组,数组长度是原数组的长度+1
int [] arr=new int[elements.length+1];
//遍历原数组
for(int i=0;i<elements.length;i++){
//判断插入位置,留出插入位置
if(i<number){
arr[i]=elements[i];
}else {
arr[i+1]=elements[i];
}
}
//插入位置添加元素
arr[number]=element;
//新数组赋值给原数组
elements=arr;
//返回原数组,数组插入元素完成
return elements;
}
/**
* 向数组头部添加一个元素
* @param element
* @return
*/
public int[] addHead(int element){
//创建一个新的数组,数组长度是原数组的长度+1
int [] arr=new int[elements.length+1];
//遍历原数组,将元素组的值通过下标一一赋值给新数组,新数组下标总是大于原数组下标1
for(int i=0;i<elements.length;i++){
arr[i+1]=elements[i];
}
//为新数组的第一个索引赋值需要添加的元素
arr[0]=element;
//新数组赋值给原数组
elements=arr;
//返回原数组,数组头部添加元素完成
return elements;
}
/**
* 向数组末尾添加一个元素
* @param element
* @return
*/
public int[] addEnd(int element){
//创建一个新的数组,数组长度是原数组的长度+1
int [] arr=new int[elements.length+1];
//遍历原数组,将元素组的值通过下标一一赋值给新数组
for(int i=0;i<elements.length;i++){
arr[i]=elements[i];
}
//为新数组的最后一个索引赋值需要添加的元素
arr[elements.length]=element;
//新数组赋值给原数组
elements=arr;
//返回原数组,数组末尾添加元素完成
return elements;
}
/******** 数组插入元素END **************/
/******** 数组删除元素 **************/
/**
* 删除任意位置的一个元素
* @param number
* @return
*/
public int[] delete(int number){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
//判断删除下标位置的合理性
if(number <0 || number >=elements.length){
throw new RuntimeException("下标越界");
}
//创建一个新的数组,数组长度是原数组的长度+1
int [] arr=new int[elements.length-1];
if(elements.length == 1){
//新数组赋值给原数组
elements=arr;
//返回原数组,数组末尾添加元素完成
}else{
//遍历数组
for(int i=0;i<arr.length;i++){
if(i<number){
arr[i]=elements[i];
}else{
arr[i]=elements[i+1];
}
}
}
//新数组赋值给原数组
elements=arr;
//返回原数组,数组末尾添加元素完成
return elements;
}
/**
* 删除头部第一个元素
* @return
*/
public int[] deleteHead(){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
//创建一个新的数组,数组长度是原数组的长度+1
int [] arr=new int[elements.length-1];
if(elements.length == 1){
//新数组赋值给原数组
elements=arr;
//返回原数组,数组末尾添加元素完成
return elements;
}else{
//遍历新数组,将原数组的值通过下标一一赋值给新数组,
for(int i=0;i<arr.length;i++){
arr[i]=elements[i+1];
}
//新数组赋值给原数组
elements=arr;
//返回原数组,数组末尾添加元素完成
return elements;
}
}
/**
* 删除末尾的一个元素
* @return
*/
public int[] deleteEnd(){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
//创建一个新的数组,数组长度是原数组的长度+1
int [] arr=new int[elements.length-1];
if(elements.length == 1){
//新数组赋值给原数组
elements=arr;
//返回原数组,数组末尾添加元素完成
return elements;}else{
//遍历新数组,将原数组的值通过下标一一赋值给新数组,
for(int i=0;i<arr.length;i++){
arr[i]=elements[i];
}
//新数组赋值给原数组
elements=arr;
//返回原数组,数组末尾添加元素完成
return elements;
}
}
/******** 数组删除元素END **************/
/******** 数组修改元素 **************/
/**
* 修改数组任意位置元素
* @param element
* @return
*/
public int[] alter(int number,int element){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
if(number <0 || number >=elements.length){
throw new RuntimeException("下标越界");
}
elements[number]=element;
//返回原数组,数组末尾添加元素完成
return elements;
}
/**
* 修改头部第一个元素
* @param element
* @return
*/
public int[] alterHead(int element){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
elements[0]=element;
//返回原数组,数组末尾添加元素完成
return elements;
}
/**
* 修改尾部最后一个元素
* @param element
* @return
*/
public int[] alterEnd(int element){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
elements[elements.length-1]=element;
//返回原数组,数组末尾添加元素完成
return elements;
}
/******** 数组修改元素END **************/
/******** 数组查询元素 **************/
/**
* 查询数组头部第一个元素
* @return
*/
public int inquireHead(){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
return elements[0];
}
/**
* 查询数组尾部最后一个元素
* @return
*/
public int inquireEnd(){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
return elements[elements.length-1];
}
/**
* 查询数组任意位置元素
* @param number
* @return
*/
public int inquire(int number){
//判断删除的元素是否为空数组
if(elements.length<=0){
throw new RuntimeException("这是一个空数组");
}
if(number <0 || number >=elements.length){
throw new RuntimeException("下标越界");
}
return elements[number];
}
/******** 数组查询元素END **************/
/******** 查寻数组 **************/
public String arrayFor(){
String str="[";
if(elements.length ==0){
str+="]";
return str;
}
for(int i=0;i<elements.length;i++){
str+=elements[i];
if(i!=elements.length-1){
str+=",";
}
}
str+="]";
return str;
}
/******** 查询数组END **************/
/******** 查询数组长度 **************/
public int arrayLength(){
int l=0;
if(elements.length ==0){
return l;
}
for(int i=0;i<elements.length;i++){
l=i;
}
return l+1;
}
/******** 查询数组长度 **************/
}
数组对象类之测试类
package array;
public class ArrayTest {
public static void main(String[] args) {
ArrayUtil au=new ArrayUtil();
/************添加元素测试*****************/
//任意位置添加数据(空数组,位置只能是0了)
au.add(0, 1);
//数组头部添加一个元素
au.addHead(0);
//数组尾部添加一个元素
au.addEnd(2);
//任意位置添加数据
au.add(3, 3);
//数组头部添加一个元素
au.addHead(-1);
//数组尾部添加一个元素
au.addEnd(4);
//查看添加元素后的数组
System.out.println("查看添加元素后的数组"+au.arrayFor());
//查看数组长度
System.out.println("查看添加元素后的数组的长度"+au.arrayLength());
System.out.println("----------------------------");
/***********添加元素测试END***************/
/***********删除元素测试***************/
//删除任意位置的一个元素
au.delete(3);
System.out.println("查看删除任意位置元素后的数组"+au.arrayFor());
//删除头部元素
au.deleteHead();
System.out.println("查看删除头部位置元素后的数组"+au.arrayFor());
//删除尾部元素
au.deleteEnd();
System.out.println("查看删除尾部位置元素后的数组"+au.arrayFor());
//查看数组长度
System.out.println("查看添加元素后的数组的长度"+au.arrayLength());
System.out.println("----------------------------");
/***********删除元素测试END***************/
/***********修改元素测试***************/
//修改任意位置的一个元素
au.alter(1, 200);
System.out.println("查看修改任意位置元素后的数组"+au.arrayFor());
//修改头部元素
au.alterHead(100);
System.out.println("查看修改头部位置元素后的数组"+au.arrayFor());
//修改尾部元素
au.alterEnd(300);
System.out.println("查看修改尾部位置元素后的数组"+au.arrayFor());
//查看数组长度
System.out.println("查看修改元素后的数组的长度"+au.arrayLength());
System.out.println("----------------------------");
/***********修改元素测试END***************/
/***********查询元素测试***************/
//查询任意位置的一个元素
System.out.println("查看任意位置1的元素"+au.inquire(1));
//查询头部元素
System.out.println("查看头部位置元素"+au.inquireHead());
//查询尾部元素
System.out.println("查看尾部位置元素"+au.inquireEnd());
//查看数组长度
System.out.println("查看数组的长度"+au.arrayLength());
System.out.println("----------------------------");
/***********查询元素测试END***************/
}
}
运行截图
太子压阵