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

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

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());
 }
 }
 }

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

四:知识点

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 接口

原文地址:https://blog.51cto.com/14232658/2475230

时间: 2024-08-07 07:03:21

JAVA集合框架及其背后的数据结构的相关文章

【Java】Java集合框架源码和数据结构简要分析——List

前言 之前一直把集合框架分成Collection和Map来对待,主要是基于储存内容是单列和双列,实际上这样来区分不太正确,set实际上是双列的结构. 现在回顾集合框架,看到很多当初看不到的东西. 现在来看集合框架,一部分是List,一部分是Set和Map,Set和Map几乎就是一回事. 一.数据结构 不讲太深入的东西,实际上我也讲不了多深入. 数据结构,就是一堆数据的关系. 逻辑结构--数据逻辑上的关系,其实就是数据结构,而数据的逻辑结构几乎可以分成四种:线性结构.集合结构.树形结构和图结构.

【Java】Java集合框架源码和数据结构简要分析——Set和Map

前言 之前一直把集合框架分成Collection和Map来对待,主要是基于储存内容是单列和双列,实际上这样来区分不太正确,set实际上是双列的结构. 现在回顾集合框架,看到很多当初看不到的东西. 现在来看集合框架,一部分是List,一部分是Set和Map,Set和Map几乎就是一回事. 本文假设你已经对集合框架有一定了解,关于细节请看<集合框架和Map基础>. 一.数据结构 不讲太深入的东西,实际上我也讲不了多深入. 数据结构,就是一堆数据的关系. 逻辑结构--数据逻辑上的关系,其实就是数据结

Java集合框架实现自定义排序

Java集合框架针对不同的数据结构提供了多种排序的方法,虽然很多时候我们可以自己实现排序,比如数组等,但是灵活的使用JDK提供的排序方法,可以提高开发效率,而且通常JDK的实现要比自己造的轮子性能更优化. 一 .使用Arrays对数组进行排序 Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法. 1.使用Arrays排序:Arrays使用非常简单,直接调用sort()即可 int[] arr = new int[] {5,8,-2,0,10}; Array

一起学 Java集合框架、数据结构、泛型

一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个层次. 实现(类):是集合接口的具体实现.从本质上讲,它们是可重复使用的数据结构. 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序.这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现. 集合接口 序号 name 接口描述 1 Collection Col

Java—集合框架List

集合的概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总和 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 集合的作用 在类的内部,对数据进行组织(针对作用与意义一样的属性,将他们放到一个集合中) 简单而快速的搜索大数量的条目 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或删除有关元素 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型 与数组相比 数组的长度

《深入理解Java集合框架》系列文章

Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framework, JCF)的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小的麻烦.我深深的不解其中的原因.虽然JCF设计参考了STL,但其定位不是Java版的STL,而是要实现一个精简紧凑的容器框架,对STL的介绍自然不能替代对JCF的介绍. 本系列文章主要从数据结构和算法层面分析

JAVA集合框架

收藏 查看我的收藏 146有用+1 56 编辑 Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台.动态的Web.Internet计算.从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet.集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.任何集合框架都包含三大块内容:对外的接口.接口的实

我所理解Java集合框架的部分的使用(Collection和Map)

所谓集合,就是和数组类似--一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接口,长虚线表示抽象类,实线表示类,箭头表示实现接口或者继承)(在网络上找的图,不知道原作者,侵权请联系我删除)(总之,关系很复杂,所以不用记得这个图,只是用来吓吓人而已的). 下面贴上个人理解之精简版之Collection(集)和Map(地图?暂且这么理解吧),话说思维导图蛮好用,以下是两幅思维导图

【Java集合源码剖析】Java集合框架

Java集合工具包位于package java.util下.包含了一些常用的数据结构,如数组.链表(单/双向).树.栈.队列.哈希表等. Java集合框架大致可分为五部分:List列表.Set集合.Map映射.迭代器(Iterator.Enumeration).工具类(Arrays.Collections). Java集合类的整体框架如下: 如图,Java集合类大致分为两大类:Collection和Map. Collection主要包括两部分:List和Set. List接口通常表示一个列表(数