黑马程序员技术交流社区
标题:
求加精!!!自己写的ArraysList实现!(实现了简单的增删改查)
[打印本页]
作者:
YaYa
时间:
2015-9-26 17:38
标题:
求加精!!!自己写的ArraysList实现!(实现了简单的增删改查)
请进来讨论!探讨细节
package com.yaya.collection;
import java.util.ArrayList;
import java.util.List;
/**
* 自己实现简单的ArrayList
* @author ya
*
*/
public class sxArraysList {
private Object[] myelementDate;
private int mysize;
public int mySize() {
return mysize;
}
public sxArraysList() {
this(10);
}
public sxArraysList(int mychushihua) {
if (mychushihua < 0) {
try {
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
myelementDate = new Object[mychushihua];
}
public boolean iskong() {
return mysize == 0;
}
public void myadd(Object obj) {
// 扩容
if (myelementDate.length == mysize) {
Object[] newArrays = new Object[mysize * 2];
System.arraycopy(myelementDate, 0, newArrays, 0,
myelementDate.length);// 复制原来数组
myelementDate = newArrays;
}
myelementDate[mysize] = obj;
mysize++;
}
public Object myget(int index) {
if (index < 0 || index >= mysize) {//这个判断封装起来比较好,我是一直复制的 - -!然后用private修饰外界不能调用
try {
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return myelementDate[index];
}
public Object myset(int index, Object obj) {
if (index < 0 || index >= mysize) {
try {
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
myelementDate[index]=obj;
}
return obj;
}
public void myremove(int index) {
if (index < 0 || index >= mysize) {
try {
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
int movenub=mysize-index-1;
if(movenub>0){
System.arraycopy(myelementDate, index+1, myelementDate, index, movenub);
}
mysize--;
myelementDate[mysize]=null;
}
//return oldArrays;
}
public void myremove(Object obj){
for(int i=0;i<mysize;i++){
if(myelementDate[i].equals(obj)){
myremove(i);
}
}
}
public static void main(String[] args) {
sxArraysList sxlist = new sxArraysList();
sxlist.myadd("aaa");
sxlist.myadd("bbb");
sxlist.myadd("ccc");
//System.out.println(sxlist.mySize());
//sxlist.myset(0, "a1");
//System.out.println(sxlist.myget(0));
//sxlist.myremove("aaa");
/*
* for(int i=0;i<sxlist.mySize();i++){
* System.out.println(sxlist.myget(i)); }
*/
}
}
复制代码
作者:
18204509116
时间:
2015-9-26 20:00
支持 黑马 加油
作者:
dai2686779
时间:
2015-9-26 20:04
已加精~~~~~~~~~~~~
作者:
YaYa
时间:
2015-9-27 09:12
dai2686779 发表于 2015-9-26 20:04
已加精~~~~~~~~~~~~
哈哈!!!!!谢谢!!!!!!
作者:
穆帆
时间:
2015-9-27 10:16
真的加精了吗?
作者:
YaYa
时间:
2015-9-27 13:34
穆帆 发表于 2015-9-27 10:16
真的加精了吗?
怎么可能 哈哈!!!!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2