JAVA集合框架及其背后的数据结构

hanyujianke 2020-03-04

一:介绍:
Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。
其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD 。
如:一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。
二:接口interface
基本关系的说明
JAVA集合框架及其背后的数据结构

1.Collection :用来存储管理一组对象 objects ,这些对象一般被成为元 素 elements

1:. Set : 元素不能重复,背后隐含着查找/搜索的语义

  1. SortedSet : 一组有序的不能重复的元素
    1. List : 线性结构
    2. Queue : 队列
    3. Deque : 双端队列

2: Map : 键值对 Key-Value-Pair ,背后隐含着查找/搜索的语义

  1. SortedMap : 一组有序的键值对

(1)Collection接口说明

boolean add(E e)     //将元素 e 放入集合中
void clear()            //删除集合中的所有元素
boolean isEmpty()     // 判断集合是否没有任何元素,俗称空集合
boolean remove(Object e)        //如果元素 e 出现在集合中,删除其中一个
int size()      //返回集合中的元素个数
Object[] toArray()         //返回一个装有所有集合中元素的数组

Collection接口示例

import java.util.Collection; 
import java.util.ArrayList;
import java.util.Arrays; 
public class Demo 
{
public static void main(String[] args)
{
Collection<String> list = new ArrayList<>();
System.out.println(list.size());
System.out.println(list.isEmpty());
list.add("我");
list.add("爱");
list.add("Java"); 
System.out.println(list.size()); 
System.out.println(list.isEmpty()); 
Object[] array = list.toArray(); 
System.out.println(Arrays.toString(array));
for (String s : list)
{ 
System.out.println(s); 
}
list.remove("爱"); 
for (String s : list) 
{ 
System.out.println(s); 
}
list.clear();
System.out.println(list.size());
System.out.println(list.isEmpty());
}
}

(2)Map接口的说明:

V get(Object k)     //根据指定的 k 查找对应的 v
V getOrDefault(Object k, V defaultValue)      //根据指定的 k 查找对应的 v,没有找到用默认值代替
V put(K key, V value)          //将指定的 k-v 放入 Map
boolean containsKey(Object key)            // 判断是否包含 key boolean containsValue(Object value)                    // 判断是否包含 value
Set<Map.Entry<K, V>> entrySet()            // 将所有键值对返回
boolean isEmpty()             //判断是否为空
int size()              // 返回键值对的数量

Map代码示例

import java.util.Map; 
import java.util.HashMap; 
public class Demo
{
public static void main(String[] args) 
{ 
Map<String, String> map = new HashMap<>(); System.out.println(map.size()); 
System.out.println(map.isEmpty());
 System.out.println(map.get("作者")); System.out.println(map.getOrDefault("作者", "佚名")); System.out.println(map.containsKey("作者")); System.out.println(map.containsValue("佚名")); 
 map.put("作者", "鲁迅");
 map.put("标题", "狂人日记"); 
 map.put("发表时间", "1918年"); 
 System.out.println(map.size()); 
 System.out.println(map.isEmpty()); 
 System.out.println(map.get("作者")); System.out.println(map.getOrDefault("作者", "佚名")); System.out.println(map.containsKey("作者")); System.out.println(map.containsValue("佚名"));
 for (Map.Entry<String, String> entry : map.entrySet()) //返回所有键值对
 { 
 System.out.println(entry.getKey()); 
 System.out.println(entry.getValue()); 
 } 
 } 
 }

三:接口以及对应的实现类

JAVA集合框架及其背后的数据结构

四:知识点

1. 集合框架的使用

  1. Collection
    1. List
    2. ArrayList
  2. LinkedList
  3. Stack
  4. Queue
  5. PriorityQueue
  6. Deque
  7. Set
  8. HashSet
  9. TreeSet
  10. Map
  11. HashMap
  12. TreeMap
  13. Collections
    2. 数据结构的理论及实现
  14. 顺序表
  15. 链表
  16. 栈4. 队列
  17. 二叉树

  18. 3. 排序算法
  19. 插入排序
  20. 希尔排序
  21. 选择排序
  22. 堆排序
  23. 冒泡排序
  24. 快速排序
  25. 归并排序
    4. Java 语法
  26. 泛型 Generic
  27. 自动装箱 autobox 和自动拆箱 autounbox
  28. Object 的 equals 方法
  29. Comparable 和 Comparator 接口

相关推荐