ArrayList和LinkedList
2018-07-12 07:34:28来源:博客园 阅读 ()
集合List下有2个子类,分别为ArrayList和LinkedList。
ArrayList:里面实际为数组,动态大小。即创建ArrayList时自动创建数组大小,在后续添加数据时,数组长度不够,会自动进行扩容。连续内存,增修查快、删除慢。下方分别是图形展示和部分实现代码。
1 public class MyArrayList { 2 3 Object[] objs = new Object[4]; 4 5 int size = 0; 6 7 public void add(Object value) { 8 9 //判断容量是否足够大,不够进行扩容 10 if(size >= objs.length) { 11 Object[] temp = new Object[objs.length*2]; 12 13 for(int i=0; i<objs.length; i++) { 14 temp[i] = objs[i]; 15 } 16 } 17 18 objs[size] = value; 19 size++; 20 } 21 22 }
LinkedList:是不连续的内存,由数组和下一个结点的地址组成,头会特别标记,增修查慢、删除快。下方分别是图形展示和部分实现代码。
1 //LinkedList中需要使用 2 public class MyNode { 3 4 Object value; //数据 5 6 MyNode next; 7 8 public MyNode(Object value) { 9 this.value = value; 10 } 11 12 public Object getValue() { 13 return value; 14 } 15 16 public void setValue(Object value) { 17 this.value = value; 18 } 19 20 public MyNode getNext() { 21 return next; 22 } 23 24 public void setNext(MyNode next) { 25 this.next = next; 26 } 27 28 }
1 public class MyLinkedList { 2 3 int size = 0; 4 //换门标记第一个元素 5 MyNode head = null; 6 7 public void add(Object value) { 8 MyNode node = new MyNode(value); 9 10 if(null == head) { 11 head = node; 12 }else { 13 MyNode temp = head; 14 15 //得到最后一个结点,并把新的结点追加进去 16 while(null != temp.getNext()) { 17 temp = temp.getNext(); 18 } 19 temp.setValue(value); 20 } 21 } 22 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 与JAVA集合相遇 2020-06-11
- Java笔记:集合 2020-06-10
- 2020最新IDEA插件大集合,一款能帮助你写代码的工具是多么重 2020-06-09
- Java电子书高清PDF集合免费下载 2020-06-05
- 数据结构:用实例分析ArrayList与LinkedList的读写性能 2020-06-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash