美文网首页数据结构算法面试待看程序员
Java(Android)数据结构汇总 -- 总纲

Java(Android)数据结构汇总 -- 总纲

作者: sens_bingo | 来源:发表于2018-04-20 09:32 被阅读0次
    数据结构.jpg

    目录:
    Java(Android)数据结构汇总(一)-- List(上)
    Java(Android)数据结构汇总(一)-- List(下)
    Java(Android)数据结构汇总(二)-- Set(上)
    Java(Android)数据结构汇总(二)-- Set(下)
    Java(Android)数据结构汇总(三)-- Queue(上)
    Java(Android)数据结构汇总(三)-- Queue(下)
    Java(Android)数据结构汇总(四)-- Map(上)
    Java(Android)数据结构汇总(四)-- Map(下)

    前言

    最近空闲了下来,于是打算将java(基于Android)的数据结构整理一下分享给大家。这次整理会结合一些相关的源码来一起讲解,源码是基于java 1.8版本的(android源码是基于API 27)。

    Java集合接口

    在讲具体的数据结构类之前,先来给大家梳理下java的两个主要集合接口:CollectionMap

    Collection是一个单元素结构的集合接口,它定义了对一个集合的基本操作,定义如下:

    // Collection继承至Iterable接口,所以可以实现迭代器功能
    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();
    }
    

    Map是一个key-value形式的键值对结构的集合接口,其中键不能重复。定义如下:

    public interface Map<K, V> {
        // 获取集合大小(键值对的数量)
        int size();
    
        // 判断集合是否为空
        boolean isEmpty();
    
        // 判断集合是否包含指定的key
        boolean containsKey(Object key);
    
        // 判断集合是否包含指定的value
        boolean containsValue(Object value);
    
        // 在集合中查找指定key对应的value
        V get(Object key);
    
        // 往集合中添加一个key-value键值对(如果key存在则更新value)
        V put(K key, V value);
     
        // 根据指定的key删除一个键值对
        V remove(Object key);
    
        // 将指定的集合的键值对添加到当前集合中
        void putAll(Map<? extends K, ? extends V> m);
    
        // 清空集合
        void clear();
    
        // 获取当前集合的key集合
        Set<K> keySet();
    
        // 获取当前集合的value集合
        Collection<V> values();
       
        // 获取当前集合的键值对集合,一个Entry对象存放着一个键值对
        Set<Map.Entry<K, V>> entrySet();
    }
    

    我们常用的数据结构类都是基于这两个接口来实现的。它们大多都在java.util包下。后来java为了实现并发编程,在java.util.concurrent包下新增了一些和并发相关的数据结构类。

    本系列文章的每类数据结构都会分为上下两篇,上篇主要是对java.util包下的数据结构类进行整理,下篇主要是对java.util.concurrent包下的数据结构类进行整理。具体内容请见前面的目录。

    相关文章

      网友评论

        本文标题:Java(Android)数据结构汇总 -- 总纲

        本文链接:https://www.haomeiwen.com/subject/tqcchftx.html