欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java集合类的组织结构和继承、实现关系详解

程序员文章站 2024-02-14 10:39:40
collection继承、实现关系如下(说明(i)表示接口, (c)表示java类,<--表示继承,<<——表示实现): (i)iterable &n...

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是一个工具类。内有多个对集合对象进行操作的静态方法,不能实例化。

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。