文章作者 100test 发表时间 2010:01:01 12:23:01
来源 100Test.Com百考试题网
1.集合的特点:
都位于 java.util包中,不能存放基本类型的数据,而只能存放对象的引用,操作的数目可以不固定(类似于动态数组)。
2.分类:
有三个类:
a.Set(集):对象不按特定方式排序,没有重复元素。这个与数学中的集合概念最相似。
b.List(列表):按照索引位置排序,可以有重复元素,允许按照对象在集合中的索引位置检索对象。
c.Map(映射):每一个元素包含一个键值对。没有重复的键值对,但是值对象可以重复。
有两个接口:
Collection接口适用于Java集合中的Set和List(这两个类直接继承了这个接口),提供了一些通用操纵的静态方法。
Iterator接口隐藏了底层集合的数据结构,对外提供了遍历各种数据类型集合的统一接口。由collection集合的iterator得到一个Iterator。语法如下:
Iterator it = set.iterator().
(注意此后若通过collection方法修改了集合则使用next()方法时会出现异常,因为其运用了所谓快速失败机制。避免了潜在的共享资源竞争而导致的并发问题)。
3.Set集合:
主要有两个实现类:HashSet和TreeSet。
前者使用哈希算法,存取速度快,它还有一个子类LinkedHashSet类,性能更高。HashSet向集合中加入一个对象时,会调用对象的hashCode()方法得到哈希码,然后根据这个哈希码计算出对象在集合中的存放位置。
为了保证其能正常工作,要求当两个对象用equals()方法比较的结果为true时它们的哈希码也必须相同。这就要求我们如果在我们自己设计的类中覆盖了equals方法,那么也也应该覆盖hashCode()方法。用equals()方法比较的结果为false时,最好hashCode不同,减少哈希冲突,提高性能。
而后者则实现了SortedSet接口,具有排序功能。由于用户属性变化不会导致重新排序,所以适合加入不可变类。向其中加入自定义的类时要注意,实现其Comparable接口,并且euqals()得出的结论要与compareTo()得出的结论相同。另外,它还支持Comparator接口,可以定义一个实现了该接口的类CustomerComparator实现自定义的排序。在定义时使用如下的语法:
Set
新版网站调整中,如需联系我们,请Email: evisa2011#gmail.com (#换@) ---- Copyright © 2000-2020.百考试题网 100Test.Com
|