首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 图形图象-> FIREWORKS教程
Java集合框架-JSP教程,Java技巧及代码
作者:网友供稿 点击:1512
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
java提供了数种持有对象的方式,包括语言内置的array,还有就是utilities中提供的容器类(container classes),又称群集类(collection classes)。集合在java中非常重要,在讨论之前,先来看几个面试中的经典问题。
1 collection 和 collections的区别。
2 list, set, map是否继承自collection接口。
3 arraylist和vector的区别。
4 hashmap和hashtable的区别。
篇尾有答案,我们开始正题。

集合collection接口
--collection 是任何对象组,元素各自独立,通常拥有相同的套用规则。set list由它派生。
基本操作 增加元素add(object obj); addall(collection c);
删除元素 remove(object obj); removeall(collection c);
求交集 retainall(collection c);

访问/遍历集合元素的好办法是使用iterator接口(迭代器用于取代enumeration)
public interface iterator{
public boolean hasnext(0;
public object next(0;
public void remove(0;
}

集set
--没有重复项目的集合
有三种特定类型的集可用
hashset-基于散列表的集,加进散列表的元素要实现hashcode()方法
linkedhashset-对集迭代时,按增加顺序返回元素
treeset-基于(平衡)树的数据结构

清单list
--位置性集合。加进清单的元素可以加在清单中特定位置或加到末尾
有两个特定版本
arraylist(数组表)-类似于vector,都用于缩放数组维护集合。区别:
一.同步性:vector是线程安全的,也就是说是同步的,而arraylist是线程序不安全的,不是同步的
二.数据增长:当需要增长时,vector默认增长为原来一培,而arraylist却是原来的一半
linkedlist(链表)-是双向链表,每个节点都有两个指针指向上一节点和下一节点。
用在fifo,用addlist()加入元素 removefirst()删除元素
用在filo,用addfirst()/removelast()
listiterator提供双向遍历next() previous(),可删除、替换、增加元素

映射表map
--用于关键字/数值对,像个dictionary
处理map的三种集合
关键字集keyset()
数值集value()
项目集enryset()
四个具体版本
hashmap-散列表的通用映射表
linkedhashmap-扩展hashmap,对返回集合迭代时,维护插入顺序
weakhashmap-基于弱引用散列表的映射表,如果不保持映射表外的关键字的引用,则内存回收程序会回收它
treemap-基于平衡树的映射表

collections类,用于同步集合,还能改变集合只读方式的类
e.g.:
map mp=new hashmap()
mp=collections.synchronizedmap(mp); //生成线程安全的映射表
mp=collections.unmodifiablemap(mp); //生成只读映射表

comparable 自然顺序的排序类 comparator 面向树的集合排序类

容器分类学(container taxonomy)
集合接口: collection list set;map iterator listiterator。
抽象类: abstractcollection abstractlist abstractset abstractmap abstractsequentialist。
implementations
hash tableresizable arraybalanced treelinked list
interfacessethashsettreeset
listarraylistlinkedlist
maphashmaptreemap



老版本中的集合类型
vector类
vector,就是向量。一种异构的混合体,可以动态增加容量。对它的操作简要如下
比如我们有一个vector: vector myvec=new vector(a_array.length)
取得vector的长度:myvec.size();
赋值:set(int position,object obj) / setelementat(object obj, int position) –不支持动态增长
add(object obj )/ addelement(object obj) 在vector末尾加入对象
e.g.:myvec.add(new a_array[0]);
取出元素:get(int position) / getelement(int position)

stack类
是vector的子类。就是数据结构里讲滥了的堆栈(这个词可简称栈,不要混淆于heap-堆)。后进先出的存取方式。
stack()构造空栈
empty()叛空
search()检查堆栈是否有元素
peek()取得栈顶元素
pop()弹栈
push()入栈

enumeration接口

dictionary类
字典。关键字/数值方式存取数据,如果映射没有此关键字,取回null。

hashtable类
是dictionary结构的具体实现。

面试题答案
collection 和 collections的区别。
collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
collection是个java.util下的接口,它是各种集合结构的父接口。
list, set, map是否继承自collection接口? list,set是 map不是
arraylist和vector的区别。
一.同步性:vector是线程安全的,也就是说是同步的,而arraylist是线程序不安全的,不是同步的
二.数据增长:当需要增长时,vector默认增长为原来一培,而arraylist却是原来的一半
hashmap和hashtable的区别
一.历史原因:hashtable是基于陈旧的dictionary类的,hashmap是java 1.2引进的map接口的一个实现
二.同步性:hashtable是线程安全的,也就是说是同步的,而hashmap是线程序不安全的,不是同步的
三.值:只有hashmap可以让你将空值作为一个表的条目的key或value




文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·Java集合框架-JSP教程,Java技巧及代码
·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!-.NET教程,评论及其它
·icl8038扫频信号发生器
·基于ASP.NET的自定义分页显示-ASP教程,ASP技巧
·DataGrid的常见问题-.NET教程,数据库应用
·ASP 调用 ORACLE存储过程并返回结果集-ASP教程,数据库相关
·RadioButtonList在Datagrid模板列中的应用-ASP教程,数据库相关
·深入剖析JSP和Servlet对中文的处理过程-JSP教程,Jsp/Servlet
·关于c#中的消息处理函数和vc中的消息处理函数区别-.NET教程,C#语言
·fireworks制作字体遮罩动画
最新文章
·如何来做好你的第一个网站_站长心得
·google广告优化技巧总结_网赚技巧
·陈宗:网络2.0是很有前景的_站长访谈
·做一个打不死的个人站长_站长心得
·photoshop蒙板打造梦幻美丽风景_photoshop教程
·拿什么拯救你 痴迷网站的站长_站长心得
·google adwords的优化技巧_google推广
·经验之谈:web建站之网站宣传_站长心得
·针对搜索引擎title的写法_站长心得
·alexa 世界网站排名研究_alexa排名
相关主题
西部数码虚拟主机

友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 自助建站
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论 打印  刷新     关闭