目录:
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<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
包下的数据结构类进行整理。具体内容请见前面的目录。
网友评论