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();//这里会报错
分享到:
相关推荐
1. 利用注解、反射和工厂模式设计一个简单的IoC容器 2. 该IoC容器包含3个注解和一个IoC容器类(AnnotationConfigApplicationContext),其定义如下: 注解 含义 @Component 标注Bean @Autowired 标注需要被注入的...
IOC(Inversion of Control)容器是软件设计模式中的一种,它将对象的创建和管理权从代码本身转移到一个外部容器,即IOC容器。这种反转控制使得程序更加灵活,降低了组件之间的耦合性,提高了可测试性和可维护性。本...
在这个背景下,“c# 实现的简单的 注入容器”是一个基于C#语言实现的DI容器,旨在帮助开发者理解注入容器的工作原理。 C#中的注入容器主要负责以下几个关键任务: 1. **注册服务**:在注入容器中,每个类或接口被...
Spring框架的核心特性之一就是Inversion of Control(IoC)容器,也被称为依赖注入(Dependency Injection)。IoC容器负责管理对象的生命周期和对象间的依赖关系,从而降低了代码的耦合度,提高了可测试性和可维护性...
通过这些模式的应用,可以实现更为灵活、高效且低耦合的容器类设计。 #### 二、组合模式(Composite) **定义:** 组合模式是一种结构型设计模式,它使得用户可以在一致的方式下处理单个对象和对象组合,提供了一...
容器技术有很多种网络模式,其中Bridge网络模式是最常用的网络模式之一。 Bridge网络模式是Docker容器的默认网络模式,在该模式下,容器和主机通过一个名为docker0的桥接器连接,实现了容器和主机之间的网络通信。...
在Java领域,Spring框架的IOC容器是最为广泛应用的实现之一。当我们自己动手实现IOC容器时,可以更深入地理解其内部的工作机制。 ### 1. IOC基本原理 **控制反转**的核心思想是将对象的创建和管理权交给容器,而...
IoC(Inversion of Control)通常用来描述这种模式的整体概念,即不再由对象自身负责管理其依赖项,而是由外部的容器来管理和注入。 在传统的编程中,一个对象通常会自行创建或查找它需要的依赖对象,这种方式导致...
本文将深入探讨一个简单的IOC容器实现,帮助我们理解DI的基本原理。 首先,理解IOC的概念至关重要。在传统的编程模式中,对象通常自行创建依赖的对象,这导致了代码之间的紧密耦合。而在IOC模式下,容器负责管理...
Java代码积累:并发 设计模式 数据结构 使用容器 实用 类 基础知识 并发性 演示线程的生命周期 生产者-消费者 设计模式参考《大话设计模式》 工厂简单模式 创造型模式 工厂方法模式 抽象工厂模式 原型模式 建造者...
Spring框架中的IOC容器是最为知名的实现之一,但理解其工作原理并自己动手创建一个简单的ICO容器,可以加深我们对依赖注入的理解。 【描述】:“废话不多说,自己看代码,教你自己写ICO容器,使用此容器自动注入...
java设计模式【之】适配器模式【源码】【场景:水和容器】 * 适配器模式,类似(亡羊补牢) * 已经存在的类(功能已经开发完成了),与新需求的功能相似,但是略有差异 * 当已经存在的方法无法满足现有需求,需要...
容器中的设计模式, 容器源码分析 - List, 容器源码分析 - Map, 容器源码分析 - 并发容 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上...
Flannel 可以作为 Docker 的网络插件,当 Docker 创建新的容器时,Flannel 会自动为容器分配 IP 并设置相应的路由规则,从而实现在不同主机上的容器间通信。 具体实施步骤如下: 1. 在所有 Docker 主机上安装并...
其中,Docker作为容器化技术的代表之一,结合Kubernetes这一容器编排工具,共同构成了容器云的基础框架。然而,随着容器规模的增长和技术复杂度的提升,如何有效地监控容器云平台,确保其稳定运行变得尤为重要。 ##...
IOC容器是Spring的核心功能之一,它负责管理对象的生命周期和对象间的依赖关系。 在Java世界里,IOC容器是一种设计模式,它的主要目的是降低组件之间的耦合度。通过反转控制(Inversion of Control,简称IOC),...
设计模式提供了一种共通语言,让工程师们能够讨论和理解复杂系统的组件间关系,而不必深入到每个组件的实现细节中。 综上所述,容器技术的出现为分布式系统设计提供了新的范式,而设计模式则是容器化分布式系统架构...
迭代器模式是Android开发中常用的设计模式之一,提供了一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式的优点包括解耦了容器类和遍历算法之间的耦合关系、让容器类专注于...
本篇文章将深入探讨Spring实现原理,阐述IoC容器的优点,并指导如何在Eclipse中创建一个Spring的Web应用。 首先,让我们理解Spring的核心——IoC容器。IoC是一种设计模式,它改变了对象获取依赖的方式。在传统的...