文档章节

数组集合添加算法

凯哥学堂
 凯哥学堂
发布于 2017/07/12 20:52
字数 356
阅读 3
收藏 0

集合是无限存储的容器:

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

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

© 著作权归作者所有

共有 人打赏支持
下一篇: 常用类
凯哥学堂
粉丝 17
博文 316
码字总数 284948
作品 0
东城
程序员
私信 提问
利用线性表的顺序结构求集合的并、交、差、补(C语言实现)

昨天用数据结构中的线性表的顺序结构实现了关于集合的并、交、差、补的集合运算,做个记录,希望也能帮助到其他人。 一、算法分析   (1)用数组A,B,C,E表示集合。假定A={1,3,4,5,6...

Tim_JX
2014/03/24
0
0
Dijkstra算法|单源最短路径|贪心算法

单愿最短路径描述:给定带权有向图G=(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称之为源(origin)。现在要计算从源到其他各顶点的最短路径的长度。这里的路径长度指的是到...

掬一捧
2012/09/26
0
0
Java集合---Vector(4)

用途与特点 可用于在需要存储有序的,可动态扩充线程安全的集合。整理逻辑算法上基本与ArrayList相同,但在操做数据的方法上都使用了synchronized关键字,在多 线程调用时,会将并行请求,变...

兜兜毛毛
12/04
0
0
System.Collections.Generic 源码阅读总结

ArrayList ,List ArrayList 和 List 都是不限制长度的集合类型 ,List相比ArrayList 就内部实现而言除了泛型本质没有太大区别。不过为避免装箱拆箱问题,尽可能使用List 集合内部是由数组实现...

寂灭万乘
08/03
0
0
Bloom Filter算法

集合数据结构一般都有这么一个方法:contains。其作用就是判断给定的元素是否存在集合中,这是一个常用的方法。其最简单的内部实现即遍历集合内的元素,一个个的判断是否与给定元素相等。为了...

长平狐
2012/06/11
153
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
3
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
6
0
EOS错误代码及中文释义

本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看 EOS错误代码集 - 汇智网 EOS错误代码列表如下, <table class="table table-striped"> <thead> <tr><th>错误代码</th><t......

汇智网教程
昨天
2
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
4
0
kiss原则

KISS 原则是用户体验的高层境界,简单地理解这句话,就是要把一个产品做得连白痴都会用,因而也被称为“懒人原则”。换句话说来,”简单就是美“。KISS 原则源于 David Mamet(大卫马梅)的电...

NB-One
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部