集合框架的理解

集合框架

概念:

Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes .

理解:

其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索retrieve 、管理 manipulate ,即增删查改CRUD.

所有集合框架都包含以下内容:

集合框架是用于表示和操纵集合一个统一架构。

接口:这些是代表集合的抽象数据类型。接口允许独立于其表示的细节来操纵集合。在面向对象的语言中,接口通常形成层次结构。

实现:这些是collection接口的具体实现。本质上,它们是可重用的数据结构。

算法:这些是对实现集合接口的对象执行有用的计算(例如搜索和排序)的方法。据说这些算法是多态的:也就是说,可以在适当的收集接口的许多不同实现中使用相同的方法。本质上,算法是可重用的功能。

优点:

减少编程工作量:通过提供有用的数据结构和算法,Collections Framework使您可以将精力集中在程序的重要部分上,而不必专注于使其工作所需的低级“管道”。通过促进不相关的API之间的互操作性,Java Collections Framework使您无需编写适配器对象或转换代码来连接API。

提高程序速度和质量:此Collections Framework提供有用数据结构和算法的高性能,高质量实现。每个接口的各种实现都是可以互换的,因此可以通过切换集合实现来轻松地调整程序。由于您不必再编写自己的数据结构,因此您将有更多的时间用于改善程序的质量和性能。

允许无关API之间的互操作性:收集接口是API来回传递收集的本地语言。如果我的网络管理API提供了节点名称的集合,并且如果您的GUI工具包希望包含列标题的集合,则即使它们是独立编写的,我们的API也将无缝地互操作。

减少学习和使用新API的工作量:许多API自然会在输入中获取集合并将其提供为输出。过去,每个这样的API都有一个小的子API专门用于操纵其集合。这些临时集合子API之间几乎没有一致性,因此您必须从头开始学习每个API,并且在使用它们时很容易出错。随着标准收集接口的出现,问题消失了。

减少了设计新API的工作量:这是先前优势的另一面。设计人员和实施人员不必在每次创建依赖于集合的API时都重新发明轮子。相反,他们可以使用标准的收集接口。

促进软件重用:符合标准收集接口的新数据结构本质上是可重用的。在实现这些接口的对象上运行的新算法也是如此。

Java 集合框架中接口之间的关系及其含义

接口

概念:这些是代表集合的抽象数据类型。接口允许独立于其表示的细节来操纵集合。在面向对象的语言中,接口通常形成层次结构。

接口的核心集合接口封装不同类型的集合,这在下面的图中所示的。这些接口允许独立于其表示的细节来操纵集合。核心集合接口是Java Collections Framework的基础。正如你可以看到 如下图所示,核心集合接口形成一个层次。

关系

底层继承高层所对应的所有调用方法
在这里插入图片描述

核心收集接口:

Collection—集合层次结构的根。集合表示一组称为其元素的对象。该Collection接口是最常见的分母是所有集合实现,用来传递周围集合和最大时,通用需要操纵它们。某些类型的集合允许重复的元素,而其他类型则不允许。一些是有序的,而其他则是无序的。Java平台不提供此接口的任何直接实现,但是提供更具体的子接口(例如Set和)的实现List。

Set—不能包含重复元素的集合。该接口对数学集合的抽象进行建模,并用于表示集合,例如包含扑克手的纸牌,构成学生时间表的课程或机器上运行的过程。

List—有序集合(有时称为sequence)。List可以包含重复元素。List通常,用户可以精确控制列表中每个元素的插入位置,并可以通过其整数索引(位置)访问元素。如果您曾经使用过Vector,您将熟悉的一般风格List。

Queue—用于在处理之前保存多个元素的集合。除了基本Collection操作外,aQueue还提供其他插入,提取和检查操作。队列通常但不一定以FIFO(先进先出)的方式对元素进行排序。优先队列除外,它们根据提供的比较器或元素的自然顺序对元素进行排序。无论使用哪种顺序,队列的开头都是将通过调用remove或删除的元素poll。在FIFO队列中,所有新元素都插入队列的尾部。其他种类的队列可能使用不同的放置规则。每个Queue实现都必须指定其排序属性。

Map—将键映射到值的对象。一个Map不能包含重复键; 每个键最多可以映射到一个值。如果您曾经使用过Hashtable,则已经熟悉的基础知识Map。

最后两个核心集合接口只是分类的版本Set和Map:

SortedSet—Set保持其元素升序排列的。提供了一些附加操作以利用订购的优势。排序的集合用于自然排序的集合,例如单词列表和成员身份记录。

SortedMap—一个Map以升序顺序维护其映射的。这是的Map类似物SortedSet。排序后的地图用于键/值对的自然排序集合,例如字典和电话簿。

Map 的应用场景

public class TestDemo {

        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("沙悟净","卷帘大将");
            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());
            }
        }
}
输出结果 :
0
true
null
齐天大圣
false
false
3
false
齐天大圣
齐天大圣
true
false
孙悟空
齐天大圣
沙悟净
卷帘大将
猪八戒
天蓬元帅
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值