`
liwenshui322
  • 浏览: 520474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

实现模式之容器

 
阅读更多

     1. List

     List里面的元素是有序的,两个常用实现类是ArrayList与LinkedList。这两个实现类的性能恰如镜像,ArrayList的访问速度快,添加和删除元素的速度慢;而LinkedList正好相反。

 

     2. Set

     Set总共有3种实现:HashSet,LinkedHashSet和TreeSet。HashSet速度最快,但其中的元素是无序的。LinkedHashSet按照元素被加入容器的顺序来对元素排序,但代价却是添加和删除元素需要额外消耗30%的时间。TreeSet用Comparator来保持元素的顺序,不过在添加删除元素的时候复杂度随着容器的增大而升高。

 

     3.Map

     Map实现类与Set类似,HashMap最快,LinkedHashMap保存着元素的顺序,迭代顺序是它们加入容器的顺序。TreeMap基于键的顺序进行迭代,但是插入和检查元素的存在性随着元素的增多而升高。

 

     4. Collections

     工具类Collections是一个类库,它提供了一些不能与任何一款容器接口完美契合的容器操作。

     4.1 查询

     Collections提供了查询列表中某一个元素在列表中索引的方法IndexOf(), 不过该方法的操作耗时与列表的尺寸成正比。如果列表是有序的,可以调用Collections.binarySearch(list,element)来获取元素在列表中的索引。

 

      4.2 排序

      Reserve(list) 将容器中元素顺序反置。

      Shuffle(list) 随机打乱元素顺序。

      Sort(list)和Sort(list,comparator) 将元素按升序排列。

 

      4.3 不可修改的容器

      目前,最基本的容器接口允许容器被修改。如果要把容器传入不信任的代码,可以用Collections把它包裹到一个特殊的实现类里面,如果客户试图修改它,就抛出运行异常。

      比如:

      List<String> list = new ArrayList<String>();

      list.add("世界第一");

      Collection<String> unmodifyList = Collections.unmodifiableCollection(list);

      Iterator<String> listIterator =  unmodifyList.iterator();

      listIterator.next();

      listIterator.remove();//这里会报错

 

     

分享到:
评论

相关推荐

    IoC容器的设计(利用反射、注解和工厂模式实现)

    1. 利用注解、反射和工厂模式设计一个简单的IoC容器 2. 该IoC容器包含3个注解和一个IoC容器类(AnnotationConfigApplicationContext),其定义如下: 注解 含义 @Component 标注Bean @Autowired 标注需要被注入的...

    IOC容器简单实现

    IOC(Inversion of Control)容器是软件设计模式中的一种,它将对象的创建和管理权从代码本身转移到一个外部容器,即IOC容器。这种反转控制使得程序更加灵活,降低了组件之间的耦合性,提高了可测试性和可维护性。本...

    c# 实现的简单的 注入容器

    在这个背景下,“c# 实现的简单的 注入容器”是一个基于C#语言实现的DI容器,旨在帮助开发者理解注入容器的工作原理。 C#中的注入容器主要负责以下几个关键任务: 1. **注册服务**:在注入容器中,每个类或接口被...

    自己实现的ioc容器

    Spring框架的核心特性之一就是Inversion of Control(IoC)容器,也被称为依赖注入(Dependency Injection)。IoC容器负责管理对象的生命周期和对象间的依赖关系,从而降低了代码的耦合度,提高了可测试性和可维护性...

    与操作容器有关的设计模式

    通过这些模式的应用,可以实现更为灵活、高效且低耦合的容器类设计。 #### 二、组合模式(Composite) **定义:** 组合模式是一种结构型设计模式,它使得用户可以在一致的方式下处理单个对象和对象组合,提供了一...

    容器技术-Bridge网络模式.pptx

    容器技术有很多种网络模式,其中Bridge网络模式是最常用的网络模式之一。 Bridge网络模式是Docker容器的默认网络模式,在该模式下,容器和主机通过一个名为docker0的桥接器连接,实现了容器和主机之间的网络通信。...

    自己实现IOC容器

    在Java领域,Spring框架的IOC容器是最为广泛应用的实现之一。当我们自己动手实现IOC容器时,可以更深入地理解其内部的工作机制。 ### 1. IOC基本原理 **控制反转**的核心思想是将对象的创建和管理权交给容器,而...

    IoC 容器和Dependency Injection 模式

    IoC(Inversion of Control)通常用来描述这种模式的整体概念,即不再由对象自身负责管理其依赖项,而是由外部的容器来管理和注入。 在传统的编程中,一个对象通常会自行创建或查找它需要的依赖对象,这种方式导致...

    一个简单的IOC容器实现

    本文将深入探讨一个简单的IOC容器实现,帮助我们理解DI的基本原理。 首先,理解IOC的概念至关重要。在传统的编程模式中,对象通常自行创建依赖的对象,这导致了代码之间的紧密耦合。而在IOC模式下,容器负责管理...

    【资源免费下载】Java代码积累丨大话设计模式(Java实现版本)、线程协作

    Java代码积累:并发 设计模式 数据结构 使用容器 实用 类 基础知识 并发性 演示线程的生命周期 生产者-消费者 设计模式参考《大话设计模式》 工厂简单模式 创造型模式 工厂方法模式 抽象工厂模式 原型模式 建造者...

    自己动手打造ICO容器

    Spring框架中的IOC容器是最为知名的实现之一,但理解其工作原理并自己动手创建一个简单的ICO容器,可以加深我们对依赖注入的理解。 【描述】:“废话不多说,自己看代码,教你自己写ICO容器,使用此容器自动注入...

    java设计模式【之】适配器模式【源码】【场景:水和容器】

    java设计模式【之】适配器模式【源码】【场景:水和容器】 * 适配器模式,类似(亡羊补牢) * 已经存在的类(功能已经开发完成了),与新需求的功能相似,但是略有差异 * 当已经存在的方法无法满足现有需求,需要...

    Java容器学习笔记:容器概览,容器中的设计模式,容器源码分析 - List,容器源码分析 - Map,容器源码分析 - 并发容

    容器中的设计模式, 容器源码分析 - List, 容器源码分析 - Map, 容器源码分析 - 并发容 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上...

    Etcd flannel Docker 实现 docker 跨主机容器之间通讯

    Flannel 可以作为 Docker 的网络插件,当 Docker 创建新的容器时,Flannel 会自动为容器分配 IP 并设置相应的路由规则,从而实现在不同主机上的容器间通信。 具体实施步骤如下: 1. 在所有 Docker 主机上安装并...

    基于 Prometheus 和 Zabbix 实现容器云平台整体监控方案-最佳实践.docx

    其中,Docker作为容器化技术的代表之一,结合Kubernetes这一容器编排工具,共同构成了容器云的基础框架。然而,随着容器规模的增长和技术复杂度的提升,如何有效地监控容器云平台,确保其稳定运行变得尤为重要。 ##...

    手动实现一个ioc容器.zip

    IOC容器是Spring的核心功能之一,它负责管理对象的生命周期和对象间的依赖关系。 在Java世界里,IOC容器是一种设计模式,它的主要目的是降低组件之间的耦合度。通过反转控制(Inversion of Control,简称IOC),...

    基于容器的分布式系统设计模式

    设计模式提供了一种共通语言,让工程师们能够讨论和理解复杂系统的组件间关系,而不必深入到每个组件的实现细节中。 综上所述,容器技术的出现为分布式系统设计提供了新的范式,而设计模式则是容器化分布式系统架构...

    Android编程设计模式之迭代器模式详解

    迭代器模式是Android开发中常用的设计模式之一,提供了一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式的优点包括解耦了容器类和遍历算法之间的耦合关系、让容器类专注于...

    Spring实现原理及IoC容器的优点

    本篇文章将深入探讨Spring实现原理,阐述IoC容器的优点,并指导如何在Eclipse中创建一个Spring的Web应用。 首先,让我们理解Spring的核心——IoC容器。IoC是一种设计模式,它改变了对象获取依赖的方式。在传统的...

Global site tag (gtag.js) - Google Analytics