数据结构.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 extends Iterable {    // 获取集合大小    int size();    // 判断集合是否为空    boolean isEmpty();    // 判断集合是否含有指定元素    boolean contains(Object o);    // 返回集合的迭代器,用于遍历    Iterator iterator();    // 将集合转换成数组    Object[] toArray();    // 将集合转换成数组(泛型)     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 {    // 获取集合大小(键值对的数量)    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 keySet();    // 获取当前集合的value集合    Collection values();       // 获取当前集合的键值对集合,一个Entry对象存放着一个键值对    Set> entrySet();}

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

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

更多相关文章

  1. Android(安卓)Tips---Android平台常见属性集合
  2. Android(安卓)Tips---Android平台常见属性集合
  3. android:onclick属性
  4. Android新手笔记—六大布局
  5. Android7.0中文API -- Spinner
  6. Android(安卓)选择控件
  7. android开发系列文章集合
  8. Android(安卓)TextView常用属性介绍Android:drawableEnd
  9. 一些系统指定id总结

随机推荐

  1. 安装Mysql时可能会遇到的一些疑难杂症
  2. 解决Linux安装mysql 在/etc下没有my.cnf
  3. MySQL将select结果执行update的实例教程
  4. MYSQL慢查询与日志的设置与测试
  5. MySQL用户管理与PostgreSQL用户管理的区
  6. Mysql 获取表的comment 字段操作
  7. MySQL为Null会导致5个问题(个个致命)
  8. MySQL存储过程in、out和inout参数示例和
  9. MySQL8忘记密码的快速解决方法
  10. Windows10系统下Mysql8.0.13忘记root密码