数组集合添加算法
数组集合添加算法
凯哥学堂 发表于7个月前
数组集合添加算法
  • 发表于 7个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

集合是无限存储的容器:

数组集合采用的算法是一开始先开辟好有限的空间进行存储放进来的数据。

等需要再次存放数据的时候,再去开辟一块比原来的空间多的容量之前,老的数据导入进新开辟的空间,然后再把新进来的数据放进空间里,依次这样进行开辟导入就形成了无限的容器。这就是数组集合的算法。 image

在java源码里面,采用的导入方式是直接调用本地系统语言来直接导入数据,这样提高了效率,一万毫秒才能完成的事情也许四千毫秒就执行完毕。

取消for循环导入使用System.arraycopy如下代码:

/**
 * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com 

 * @author 小沫
 */
//把objs的数据从最开始导入到objs1最开始的空间进行依次存放。objs里面有多少数据那么就导入多少。
System.arraycopy(objs,objs1,0,objs.length);

imageimage

//用下标得到数据
public Object get(int index){
return objs[index];
}
//得到大小
public int size(){
return index;
}

测试类:

public static void main(){
MyArrayList list=new MyArrayList();
long tem=System.currentTimeMillis();
for(int i=0;i<100000;i++){
list.add("abc"+i);
for(int j=0;j<list.size();j++){
System.out.println(list.get(j));
}
}
System.out.println("毫秒:"+(System.currentTimeMillis)-tem);
list.add("1231");
list.add("1232");
list.add("1233");
System.out.println(list.size());
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
标签: Java
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 9
博文 252
码字总数 239443
×
凯哥学堂
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: