自定义容器(动态数组——队列)
作用:可以保存任意数量、任意数据类型的数据
下面用java语言实现容器的四大基本操作:增、删、查、改
作用:可以保存任意数量、任意数据类型的数据
下面用java语言实现容器的四大基本操作:增、删、查、改
1.增
package com.ywl;
public class Mylist
{
//初始化原始数组长度为零
int[] srcArray = new int[0];
/*
* 向容器内添加元素(element)
*/
public void add(int element)
{
//创建新数组对象长度比原来的大一
int[] newArray =new int[srcArray.length+1];
//把原来数组的元素拷贝到新数组的相应位置
for(int i=0;i<srcArray.length;i++){
newArray[i]=srcArray[i];
}
//在新数组末端添加元素 element
newArray[srcArray.length]=element;
//把新数组赋值给原数组
srcArray=newArray;
}
/*
* 获取中容器的长度
* 返回 长度
*/
public int getLength()
{
return srcArray.length;
}
/*
* 显示数组中的所有元数
*/
public void showAllelement()
{
System.out.println("数组中的元素为:");
for(int i=0;i<srcArray.length;i++){
System.out.println(srcArray[i]);
}
}
/*
* 主函数
*/
public static void main(String[]arg)
{
//创建对象
Mylist list = new Mylist();
list.add(2);
list.add(0);
list.add(3);
list.showAllelement();
}
}
结果为:
数组中的元素为:
2
0
3
2.删
package com.ywl;
public class Mylist
{
//初始化原始数组长度为零
int[] srcArray = new int[0];
/*
*向容器末尾添加指定的元素
* element要添加的元素
*/
public void add(int element){
//创建新数组对象 长度比scrArray大一
int[] newArray = new int[srcArray.length+1];
//将原始数组中的元素拷贝到新数组的对应位置
for( int i=0;i<srcArray.length;i++){
newArray[i]=srcArray[i];
}
//将element添加到newArray末尾
newArray[srcArray.length]=element;
//将newArray赋值给srcArray
srcArray=newArray;
}
/*
* 删除容器的指定元素
*/
public void remove(int index)
{ int i=index;
//创建新数组对象长度比原来的小一
int[] newArray =new int[srcArray.length-1];
//把原来数组i之前的元素拷贝到新数组的相应位置
for(int j=0;j<i;j++){
newArray[j]=srcArray[j];
}
//把原数组i之后的元素拷贝的到数组的相应位置
for(int j=i;j<srcArray.length-1;j++){
newArray[j]=srcArray[j+1];
}
//把新数组赋值给原数组
srcArray=newArray;
}
/*
* 获取中容器的长度
* 返回 长度
*/
public int getLength()
{
return srcArray.length;
}
/*
* 显示数组中的所有元数
*/
public void showAllelement()
{
System.out.println("数组中的元素为:");
for(int i=0;i<srcArray.length;i++){
System.out.println(srcArray[i]);
}
}
/*
* 主函数
*/
public static void main(String[]arg)
{
//创建对象
Mylist list = new Mylist();
list.add(2);
list.add(0);
list.add(5);
list.showAllelement();
list.remove(2);
list.showAllelement();
}
}
结果为:
数组中的元素为:
2
0
5
数组中的元素为:
2
0
3查
package com.ywl;
public class Mylist
{
//初始化原始数组长度为零
int[] srcArray = new int[0];
/*
*向容器末尾添加指定的元素
* element要添加的元素
*/
public void add(int element){
//创建新数组对象 长度比scrArray大一
int[] newArray = new int[srcArray.length+1];
//将原始数组中的元素拷贝到新数组的对应位置
for( int i=0;i<srcArray.length;i++){
newArray[i]=srcArray[i];
}
//将element添加到newArray末尾
newArray[srcArray.length]=element;
//将newArray赋值给srcArray
srcArray=newArray;
}
/*
* 查找容器的指定位置的元素
*/
public int getlength(int index){
return srcArray[index];
}
/*
* 获取中容器的长度
* 返回 长度
*/
public int getLength()
{
return srcArray.length;
}
/*
* 显示数组中的所有元数
*/
public void showAllelement()
{
System.out.println("数组中的元素为:");
for(int i=0;i<srcArray.length;i++){
System.out.println(srcArray[i]);
}
}
/*
* 主函数
*/
public static void main(String[]arg)
{
//创建对象
Mylist list = new Mylist();
list.add(2);
list.add(0);
list.add(5);
list.showAllelement();
System.out.println("查找的元素为:"+list.getlength(1));
}
}
结果为:
数组中的元素为:
2
0
5
查找的元素为:0
4.改
package com.ywl;
public class Mylist
{
//初始化原始数组长度为零
int[] srcArray = new int[0];
/*
*向容器末尾添加指定的元素
* element要添加的元素
*/
public void add(int element){
//创建新数组对象 长度比scrArray大一
int[] newArray = new int[srcArray.length+1];
//将原始数组中的元素拷贝到新数组的对应位置
for( int i=0;i<srcArray.length;i++){
newArray[i]=srcArray[i];
}
//将element添加到newArray末尾
newArray[srcArray.length]=element;
//将newArray赋值给srcArray
srcArray=newArray;
}
/*
* 修改容器指定位置的元素
*/
public int set(int index,int element)
{
//需要修改的数
srcArray[index]=element;
return element;
}
/*
* 获取中容器的长度
* 返回 长度
*/
public int getLength()
{
return srcArray.length;
}
/*
* 显示数组中的所有元数
*/
public void showAllelement()
{
System.out.println("数组中的元素为:");
for(int i=0;i<srcArray.length;i++){
System.out.println(srcArray[i]);
}
}
/*
* 主函数
*/
public static void main(String[]arg)
{
//创建对象
Mylist list = new Mylist();
list.add(2);
list.add(0);
list.add(5);
list.showAllelement();
list.set(0,4);//修改数组下标为0的元素
list.showAllelement();//修改之后的数组
}
}
结果为:
数组中的元素为:
2
0
5
数组中的元素为:
4
0
5