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

容器的特点

阅读更多

有幸参加一次电话面试,让我知道了一个成功的钓鱼人只和一只3000斤的鱼合影,而不是30只100斤的鱼。技术在深,不在广。

 

ArrayList和LinkedList都是List类型,他们都按照插入元素的顺序保存元素。两者的区别是ArrayList在随机访问时效率较高,插入和移除元素时较慢;LinkedList随机访问时的效率低,插入和移除元素时效率高。

 

HashSet、TreeSet、LinkedHashSet都是Set类型。Set容器中相同的元素只保留一次。HashSet采用相当复杂的方式存放元素,但是查询速度最快。TreeSet的元素按照升序保存,需要顺序输出时使用。LinkedHashSet采用链表存储元素,元素按照输入的顺序排序。

 

HashMap与HashSet一样,拥有最快的查询速度;TreeMap存放的元素按照比较结果的升序排列;LinkedHashSet按照插入时的顺序保存元素,同时保留了HashMap的查询速度。

 

public class Test{
	public static Collection fill(Collection<String> collection){
		collection.add("dog");
		collection.add("cat");
		collection.add("rat");
		collection.add("dog");
		return collection;
	}
	
	public static Map fill(Map<String,String> map){
		map.put("rat", "Fuzzy");
		map.put("cat", "Rags");
		map.put("dog", "Bosco");
		map.put("dog", "Spot");
		return map;
	}
	public static void main(String[] args){
		System.out.println(fill(new ArrayList()));
		System.out.println(fill(new LinkedList()));
		System.out.println(fill(new HashSet()));
		System.out.println(fill(new TreeSet()));
		System.out.println(fill(new LinkedHashSet()));
		System.out.println(fill(new HashMap()));
		System.out.println(fill(new TreeMap()));
		System.out.println(fill(new LinkedHashMap()));
	}
}

/*
[dog, cat, rat, dog]
[dog, cat, rat, dog]
[dog, cat, rat]
[cat, dog, rat]
[dog, cat, rat]
{dog=Spot, cat=Rags, rat=Fuzzy}
{cat=Rags, dog=Spot, rat=Fuzzy}
{rat=Fuzzy, cat=Rags, dog=Spot}
*/
分享到:
评论

相关推荐

    STL容器的算法复杂性问题.pdf

    本文旨在深入探讨STL容器中的算法复杂性问题,并重点分析三种常见的时间复杂度及其对应的容器特点与典型操作。 #### 二、STL容器的复杂度 尽管大O表示法提供了多种时间复杂度衡量标准,但对于一个广泛应用的标准库...

    快开门式压力容器操作R1试卷及答案.docx

    8. **快开门式压力容器特点** - 进出容器通道的端盖或封头与主体间带有相互嵌套的快速密封锁紧装置。 9. **特种设备事故应急专项预案要求** - 设置特种设备安全管理机构或配备专职安全管理人员的单位需制定应急...

    c++容器类&QT;容器

    ### C++ 容器类与 Qt 容器详解 #### C++ 容器类概述 在C++标准库中,容器类(containers)是用于存储数据的重要组件之一,它们为程序设计提供了高度灵活且功能丰富的数据管理手段。根据数据的组织形式不同,C++中...

    java容器详细解析

    Java容器详细解析 Java容器是一种基本的数据结构,用于存储和管理对象。Java容器主要分为两大类:Collection和Map。 Collection Collection是一个独立元素的序列,这些元素都服从一条或多条规则。Collection接口...

    Java容器总结

    ArrayList、LinkedList、HashSet、HashMap等是常见的实现,它们各有特点,适用于不同的场景。例如,ArrayList适合随机访问,而LinkedList适合插入和删除操作。深入源码,可以理解它们的内部数据结构(如数组、链表)...

    C++ STL vector 容器介绍

    `vector`容器的主要特点包括: 1. 动态数组:`vector`的底层实现是一个动态数组,这意味着它的大小可以在运行时动态改变。当你向`vector`添加新元素时,如果当前容量不足,它会自动调整大小,通常会分配比当前需要...

    小黄鸭容器直装.zip

    小黄鸭容器直装的一大特点是其便捷性。由于所有应用都在容器内运行,用户不必担心兼容性问题,无论是旧版应用还是新潮应用,都可以在这个环境中流畅运行。此外,每个应用的数据和配置都独立于系统和其他应用,这样...

    Qt的容器类

    QList&lt;T&gt; 是一种“数组列表”,结合了单一类中 QVector&lt;T&gt; 和 QLinkedList&lt;T&gt; 的重要特点。它支持随机访问,也可以快速地在任意一端插入或者移除项。 QStringList 类是被广泛用于 Qt 应用编程接口的 QList&lt;QString&gt;...

    VCAD 2022 化工容器制图

    VCAD 2022 针对化工行业的特点,提供了专业的绘图模板和符号库,覆盖了各种化工容器和设备的标准化设计元素。用户可以轻松选择和编辑这些元素,快速构建复杂的工程图纸。软件的用户界面友好,操作直观,减少了学习...

    容器存储趋势的发展

    由于容器的特点,它们更倾向于使用文件级别的存储接口,因为这可以更好地支持微服务架构下应用之间的交互。 #### Ceph:一种分布式的存储系统 Ceph是一种开源的分布式存储系统,旨在提供高性能、可靠且可扩展的...

    阿里容器服务

    相较于传统IaaS和PaaS,容器云具有以下显著特点: - **快速启动与高密度部署**:容器的启动速度远超虚拟机,且能更高效地利用硬件资源。 - **一致性的运行环境**:容器镜像封装了应用及其依赖环境,确保了跨环境的...

    STL -容器,string容器

    序列式容器的特点是强调值的排序,每个元素均有固定的位置。常见的序列式容器有vector、list、deque等。 关联式容器的特点是无需强调元素的物理顺序,各元素之间没有严格的物理上的顺序关系。常见的关联式容器有set...

    压力容器施工组织设计-压力容器受力特点及工程设计

    压力容器施工组织设计-压力容器受力特点及工程设计

    容器通用算法和迭代器

    每种容器都有其特定的特性和性能特点。例如: 1. `std::vector`:动态数组,支持随机访问,插入和删除元素在末尾进行时效率较高。 2. `std::list`:双向链表,适合频繁的插入和删除操作,但随机访问效率较低。 3. `...

    压力容器-收集2本书籍.zip

    3. **特殊工况设计**:如低温压力容器、高压容器、高温容器的设计特点和要求。 4. **防腐蚀设计**:针对不同介质和环境,介绍防腐涂层、衬里、电化学保护等防腐措施。 5. **非标设计**:对于特殊形状和功能的压力...

    GB 150.1-2011 压力容器 第1部分:通用要求

    - **基本要求**:设计时应考虑容器的工作条件、使用环境、操作特点等因素。 - **强度计算**:依据材料性能、容器结构及工作条件等,进行必要的应力分析和强度校核。 - **稳定性计算**:确保容器在各种工况下保持稳定...

    Spring学习资料

    - **Spring IoC容器特点**: - **减少工厂和单例模式的使用**:因为依赖管理交给了Spring容器,所以减少了代码中对工厂模式和单例模式的依赖。 - **轻量级且非侵入性**:Spring容器不强制开发者依赖其API或实现...

    压力容器操作培训教材.pdf

    综上所述,压力容器操作人员需要掌握的知识点包括但不限于:压力容器的定义、工作特点、结构和受力情况、适用范围和除外情况、安全附件和相关安全标准。只有全面了解这些基础知识和操作要点,才能保证在实际工作中对...

    STL各个容器性能详细比较

    在这个场景下,我们主要关注STL中的容器,它们是存储和管理数据的主要工具。以下是STL中几种常见容器的性能比较,以及其在特定操作下的行为和效率。 1. **vector**: - **内存分配**:vector通常在内存中连续存储...

Global site tag (gtag.js) - Google Analytics