Java集合类的组织结构和继承、实现关系详解
Collection继承、实现关系如下(说明(I)表示接口,(C)表示Java类,<--表示继承,<<——表示实现):
(I)Iterable
|<--(I)Collection
|<--(I)List
|<<——(C)ArrayList
|<<——(C)LinkedList
|<<——(C)Vector
|<--(I)Set
|<<——(C)HashSet
|<--(I)Queue[kju]
Map继承、实现关系如下
Map
|<<——(C)HashMap
|<<——(C)HashTable
Iterable:
packagejava.lang; importjava.util.Iterator; publicinterfaceIterable{ Iterator iterator(); }
Iterator:
packagejava.util; publicinterfaceIterator{ booleanhasNext(); Enext(); voidremove(); }
Collection:
packagejava.util; publicinterfaceCollectionextendsIterable { intsize(); booleanisEmpty(); booleancontains(Objecto); Iterator iterator(); Object[]toArray(); T[]toArray(T[]a); booleanadd(Ee); booleanremove(Objecto); booleancontainsAll(Collection>c); booleanaddAll(Collectionc); booleanremoveAll(Collection>c); booleanretainAll(Collection>c); voidclear(); booleanequals(Objecto); inthashCode(); }
Map:
packagejava.util; publicinterfaceMap{ intsize(); booleanisEmpty(); booleancontainsKey(Objectkey); booleancontainsValue(Objectvalue); Vget(Objectkey); Vput(Kkey,Vvalue); Vremove(Objectkey); voidputAll(Mapm); voidclear(); Set keySet(); Collection values(); Set >entrySet(); interfaceEntry { KgetKey(); VgetValue(); VsetValue(Vvalue); booleanequals(Objecto); inthashCode(); } booleanequals(Objecto); inthashCode(); }
1、Collection和Map的区别
Collection和Map最大的区别就是Collection存储的是一组对象;Map是以“键值对”的形式对对象进行的管理。
2、Iterable和Iterator
Iterator是迭代器,Iterable是接口。很多类,像List、Set、HashMap不直接实现迭代器接口Iterator,而是去实现Iterable接口,是因为:
Iterator的方法next()和hasNext()是依赖当前迭代位置的,直接实现Iterator,集合在不同方法间传递时,会包含一个当前迭代位置的指针;
而Iterable每次调用都会返回一个从头开始计数的迭代器。
3、Collection和Collections的区别
Collection是一个集合接口。它提供了对集合对象进行进本操作的通用接口方法。
Collections是一个工具类。内有多个对集合对象进行操作的静态方法,不能实例化。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。