【杰哥爱算法】自己写了一个简陋的集合,望大神一起交流,给意见

JG2JG 2015-05-26 11:21:02
package cn.naiwaer.test;
/**
* 自定义的ArrayList集合
* @author FH
*
*/
public class MyArrayList {
private Object[] arr = null;
/**
* 向集合中添加元素
* @param obj 需要添加的元素
*/
public void add (Object obj){
if(arr!=null){
int num = arr.length;
System.out.println(num);
if(arr[num-1]!=null){
Object objTem[] = new Object[num+1];
for(int i=0;i<arr.length;i++){
objTem[i]=arr[i];
}
objTem[num]=obj;
arr=objTem;
}else{
arr[num-1]=obj;
}
}else{
arr= new Object[1];
this.add(obj);
}
}

public Object[] getList(){
return arr;
}

/**
* 从集合中移除元素
* @param index 要移除元素的下标,下标从0开始
* @return
*/
public boolean remove(int index){
if(index<arr.length&&index>=0){
arr[index]=null;
Object[] temObj = new Object[arr.length-1];
//将数组分为两次迭代,直接将删除元素下标前的所有元素赋值给新的数组,从而跳过index这一项避免每次循环都要进行判断,从而提高性能
for(int i=0;i<index;i++){
temObj[i]=arr[i];
}
//跳过被删除元素下标,将后面的继续赋值给新的数组
if(index<arr.length){
for(int i=index+1;i<arr.length;i++){
temObj[i-1]=arr[i];
}
}
arr=temObj;
return true;
}else{
return false;
}
}




}
...全文
91 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bree06 2015-05-27
  • 打赏
  • 举报
回复
多去看一下java的源码吧! 还有用几十万数据测试一下你的list和java.util.ArrayList,看看处理能力

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧