1.创建一个mylist类,构造好框架。
public class Mylsit{
//属性及相应的get方法和set方法
//构造方法
//自己编写的方法
}
2.定义相关属性及get和set方法
int length;
int size;
Object[] arrvalue;
final int dflength=10;
//get方法
public int getLength() {
return length;
}
public int getSize() {
return size;
}
3.构造方法。(这里只展示两种)
// 无参构造
public MyList(){
initList();
}
// 重复代码封装为的代码
private void initList(){
length = dflength;
arrvalue=new Object[length];
size=0;
}
// 传入数组长度的构造方法
public MyList(int initLength){
if(initLength<=0){
System.err.println("输入参数小于0,不在可取范围!");
}
if(initLength>=Integer.MAX_VALUE){
System.out.println("输入参数大于上限,不在可取范围");
}
if(initLength<=dflength){
initList();
}
if(initLength>dflength){
length = initLength;
arrvalue=new Object[length];
size=0;
}
}
4.方法一:数组扩容
//扩容
public void grow(){
int oldlength = length;
int newlength = (oldlength>>1)+oldlength;
length = newlength;
Object[] newArrvalue = new Object[length];
// 然后 将原数组中的所有数据 存入新数组中
for (int i = 0; i < arrvalue.length; i++) {
newArrvalue[i]=arrvalue[i];
}
arrvalue = newArrvalue;
newArrvalue=null;
System.out.println("扩容:"+getLength());
System.out.println("元素个数:"+getSize());
}
5.方法二:增加元素
// 添加元素
public void add(Object value){
if(size>=length){
grow();
}
arrvalue[size++]=value;
}
6.删除元素
//删除元素
public void delete(int c) {
check(c);
arrvalue[b]=null;
for(int i=b;i<length;i++) {
arrvalue[i]=arrvalue[i+1];
}
arrvalue[length]=null;
}
7.查找(两种:1:按元素查找 2:按下标查找)
//查找元素
//按下标查找
int b=0;
public void check(int c) {
for(int i=0;i<length;i++) {
if(c==(int)arrvalue[i]) {
System.out.println(c+"为数组中的第"+i+"个元素");
b=i;
}
}
}
//按元素查找
public void check1(int c) {
for(int i=0;i<length;i++) {
if((int)arrvalue[i]==c) {
System.out.println(i);
}
}
}
8.修改数据(包含两种方法:按传入参数为下标或数据分类,其中利用一个Boolean参数进行判断)
//查改元素
public void change(int b1,int c,boolean index) {
if(index==true) {
check(c);
arrvalue[b]=b1;}
else if(index==false) {
for(int i=0;i<length;i++) {
if((int)arrvalue[i]==c) {
arrvalue[i]=b1;
}
}
}
}
最后可以创建主函数进行调试。