Map接口源码解析

Map

每个数据项是key-value数据对

key不能重复

接口内代码比较少,都是基本操作


package java.util;

public interface Map<K,V> {
    // Query Operations

    int size();

    boolean isEmpty();

    boolean containsKey(Object key);

    boolean containsValue(Object value);

    V get(Object key);

    // Modification Operations

    V put(K key, V value);

    V remove(Object key);

    // Bulk Operations

    void putAll(Map<? extends K, ? extends V> m);

    void clear();

    // Views

    Set<K> keySet(); // 集合类型

    Collection<V> values();// 集合类型

    Set<Map.Entry<K, V>> entrySet();

    interface Entry<K,V> { // key-value数据对 

        K getKey();

        V getValue();

        V setValue(V value);

        boolean equals(Object o);

        int hashCode();
    }

    // Comparison and hashing

    boolean equals(Object o);

    int hashCode();

}
时间: 2024-10-12 19:51:58

Map接口源码解析的相关文章

Deque接口源码解析

Deque 双向队列 队头:可以插入可以删除 队尾:可以插入可以删除 继承Queue接口 源码如下: package java.util; public interface Deque<E> extends Queue<E> { /** * 队头插入元素 * * @throws 队列满了添加元素,抛出:IllegalStateException * @throws 类型不兼容,抛出:ClassCastException * @throws null队列不允许null,抛出:Null

SortedSet接口源码解析

SortedSet接口为TreeSet做准备 可以实现排序集合 源码 package java.util; public interface SortedSet<E> extends Set<E> { /** * 比较器 */ Comparator<? super E> comparator(); /** * 获取子集 * @throws ClassCastException if <tt>fromElement</tt> and * <t

Set接口源码解析

Set 无须集合 元素不可以重复 接口内源码和上面其他接口很类似 package java.util; public interface Set<E> extends Collection<E> { int size(); boolean isEmpty(); boolean contains(Object o); Iterator<E> iterator(); Object[] toArray(); <T> T[] toArray(T[] a); bool

Queue接口源码解析

队列 先进先出 入队列:offer 出队列:poll 队头元素:peek 继承:Collection抽象类 源码如下: package java.util; public interface Queue<E> extends Collection<E> { /** * 队列插入元素 * * @param e the element to add * @return <tt>true</tt> (as specified by {@link Collectio

SortedMap接口源码解析

TreeMap的父接口 package java.util; public interface SortedMap<K,V> extends Map<K,V> { Comparator<? super K> comparator(); SortedMap<K,V> subMap(K fromKey, K toKey); SortedMap<K,V> headMap(K toKey); SortedMap<K,V> tailMap(K

ceph RGW接口源码解析--Rados数据操作

RGW业务处理流程: http reqest --> apache 转 FastCgi module FastCgi module --> radosgw  通过socket请求实现(未确定是否有其它方式) radosgw --> ceph集群  通过socket实现,调用rados接口 1.数据结构 在Rgw_common.h定义了基本的数据结构,并实现了 decode.encode序列化,方便对rados访问 //桶的权限创建资料 struct RGWBucketInfo  {  r

Java集合类源码解析:AbstractMap

目录 引言 源码解析 抽象函数entrySet() 两个集合视图 操作方法 两个子类 参考: 引言 今天学习一个Java集合的一个抽象类 AbstractMap ,AbstractMap 是Map接口的 实现类之一,也是HashMap.TreeMap.ConcurrentHashMap 等的父类,它提供了Map 接口中方法的基本实现(关于Map接口有疑惑的同学可参考 Java集合类根接口:Collection 和 Map) 源码解析 因为 AbstractMap 类是实现Map接口的抽象类,所以

Spring-cloud &amp; Netflix 源码解析:Eureka 服务注册发现接口 ****

http://www.idouba.net/spring-cloud-source-eureka-client-api/?utm_source=tuicool&utm_medium=referral *************************** 先关注下netflix eureka server 原生提供的接口.https://github.com/Netflix/eureka/wiki/Eureka-REST-operations 这是对非java的服务使用eureka时可以使用的r

给jdk写注释系列之jdk1.6容器(6)-HashSet源码解析&amp;Map迭代器

今天的主角是HashSet,Set是什么东东,当然也是一种java容器了. 现在再看到Hash心底里有没有会心一笑呢,这里不再赘述hash的概念原理等一大堆东西了(不懂得需要先回去看下HashMap了),需要在啰嗦一句的是hash表是基于快速存取的角度设计的,也是一种典型的空间换时间的做法(这个在分析HashMap中都有讲过).那么今天的HashSet它又是怎么一回事的,他的存在又是为了解决什么问题呢? 先来看下Set的特点:Set元素无顺序,且元素不可以重复. .想到了什么?无顺序,由于散列的