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:
package java.lang; import java.util.iterator; public interface iterable<t> { iterator<t> iterator(); }
iterator:
package java.util; public interface iterator<e> { boolean hasnext(); e next(); void remove(); }
collection:
package java.util; public interface collection<e> extends iterable<e> { int size(); boolean isempty(); boolean contains(object o); iterator<e> iterator(); object[] toarray(); <t> t[] toarray(t[] a); boolean add(e e); boolean remove(object o); boolean containsall(collection<?> c); boolean addall(collection<? extends e> c); boolean removeall(collection<?> c); boolean retainall(collection<?> c); void clear(); boolean equals(object o); int hashcode(); }
map:
package java.util; public interface map<k,v> { int size(); boolean isempty(); boolean containskey(object key); boolean containsvalue(object value); v get(object key); v put(k key, v value); v remove(object key); void putall(map<? extends k, ? extends v> m); void clear(); set<k> keyset(); collection<v> values(); set<map.entry<k, v>> entryset(); interface entry<k,v> { k getkey(); v getvalue(); v setvalue(v value); boolean equals(object o); int hashcode(); } boolean equals(object o); int hashcode(); }
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是一个工具类。内有多个对集合对象进行操作的静态方法,不能实例化。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。