关闭

Java集合框架学习笔记

发表于:2011-1-27 10:14

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:fruitking    来源:51Testing软件测试网采编

#
java
#
JAVA
#
Java

  从集合框架图中可以看出,分为两类:1)以Collection为接口的元素集合类型,2)以Map为接口的映射集合类型

  Collection类型又分为两大类Set和List

  所有集合的实现类都不是直接实现集合类接口,而是都继承一个相应的抽象类

  Set集合的特征:就是元素无重复,但是无序(所以Set接口以及实现类没有按位置index操作的添加、删除、访问方法)

  List集合的特征:集合有序排列,可以有重复元素,可以随机访问(使用位置index添加、删除、访问元素)

  List的实现类有ArrayList,LinkedList,这两个都是非线程安全的,Vector是线程安全的List实现类,Stack是vector的子类

  ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更像数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更像一个链表结构

  在ArrayList的前面或中间插入数据时,必须将其后的所有数据相应的后移,这样必然要花费较多时间,所以,当你的操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;

  而访问链表中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,所以,当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。

  Set的实现类有HashSet,TreeSet以及子类LinkedHashSet,这三个类是非线程安全的TreeSet是基于树结构的集合,LinkedHashSet具备按照插入先后顺序访问的功能,HashSet访问元素的顺序是不确定的,TreeSet的访问顺序是按照树接口的顺序访问的Map的实现类有HashMap,IdentityHashMap,WeakHashMap,TreeMap,以及LinkedHashMap子类,这些类都是非线程安全的,WeakHashMap是一种改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收。

  HashTable是线性安全的,HashTable不能插入null空元素。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号