收藏网站
  设为首页
用户名: 密码: 验证码: 看不清?  站内搜索:  
首  页 Java培训 企业培训 课程介绍 就业情况 人才外包 新闻与文章
新闻与文章
   
   查看文章
   查看小贴士
   查看新闻
Java集合中的几种数据结构(二)
田雪松
发布时间:2008-05-24 13:19:17    浏览次数:133       类别:Java技术
  上一讲说明了为什么要使用集合,这一进我们来具体看一看集合中的数据结构。Java中的集合按数据结构来分包括线性表、树、哈希表等,我们先来看看线性表。Java集合的线性表包括两种,即:

1、连续顺序存储结构

  这种存储结构的典型代表是java.util.ArrayList。连续顺序存储结构跟数组是一样的,插入、删除操作效率低,并且是有边界的。那么,你有没有在使用ArrayList的时候发现它出现数组越界异常呢?好像没有,对吧。什么原因呢?原来,ArrayList在数组将要满时,会将原来的数组丢弃,然后再放大一倍左右创建一个新的数组,并将原来数组中的数据全部拷贝过去。试想一下,如果你有101个元素,假定ArrayList初始大小是100个,当你存入101个元素时,数组空间不足了,于是ArrayList就放大1倍空间,大概是200个左右,并将原来的100个元素复制过来。试想一下,为了存储101个元素,却使用了200个元素的空间,这是不是极大的浪费啊。所以,ArrayList一般存储元素数目确定,插入删除操作不频繁的元素。并且,如果你知道需要多少个元素时,一定要声明出来。它的优点也很明显,那就是节省存储空间。

2、链式存储结构

  典型的链式存储结构的线性表是java.util.LinkedList。链表本身固有的特点决定了它存储元素的个数是不受限制的。但由于每一个结点不仅要存储当前元素的数据,还要存储下一个结点的位置,甚至上一个结点的位置,所以LinkedList比ArrayList占用的存储空间要多一些。但相对于因元素个数不确定而可能带来的浪费而言,这点浪费又是可接受的。此外,链表的插入和删除操作效率较高。所以,LinkedList一般用于存储个数不确定,或插入删除操作比较频繁的元素。LinkedList是双向循环链表。
在线咨询
 武老师: 点击这里给我发消息
 代老师: 点击这里给我发消息
 
电话咨询
 报名热线:010-62320869
电子邮件
 Email:consult@sodii.com
资源下载
  入学测试题
  报名登记单
  Java基础视频
  Struts视频
  Hibernate视频
  Spring视频
  PLSQL视频
  Hibernate讲义
  Spring讲义
乘车路线
1、乘坐47、386、836、753、740、983、656、944、运通109、运通113等,在学院桥东下车,路北白色大楼即是科群大厦;
2、乘坐375、438、386、743、748、398、392等,到北航下车,向北步行200米至学院桥,学院桥东北角即是科群大厦;
3、西站下车,可直接乘坐47路到学院桥东;北京站下车,坐2号线地铁至东直门,换乘375在北航下车

联系电话:010-62320869│QQ:453493255│电子邮件:consult@sodii.com 地址:北京市海淀区学院路30号科群大厦214室
Copyright (C) 2007-01 All Rights Reserved 松迪科技(北京)有限公司
京ICP备  07019912号