Java(Android)数据结构汇总 -- 总纲
16lz
2021-12-04
数据结构.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的两个主要集合接口:Collection
和Map
。
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
包下的数据结构类进行整理。具体内容请见前面的目录。
更多相关文章
- Android(安卓)Tips---Android平台常见属性集合
- Android(安卓)Tips---Android平台常见属性集合
- android:onclick属性
- Android新手笔记—六大布局
- Android7.0中文API -- Spinner
- Android(安卓)选择控件
- android开发系列文章集合
- Android(安卓)TextView常用属性介绍Android:drawableEnd
- 一些系统指定id总结