`
lwz52169
  • 浏览: 35694 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Java 常用数据结构特点

    博客分类:
  • Java
阅读更多
Collection
........|--------List
........|..........|----------ArrayList
........|..........|----------Vector
........|..........|.............|-----Stack
........|..........|----------LinkedList
........|--------Set
...................|----------HashSet.
...................|.............|-----LinkedHashSet
...................|----------SortedSet
.................................|-----TreeSet
 
Iterator
.....|-------ListIterator
 
Map
.....|------Hashtable
.....|..........|------Properties
.....|------HashMap
.....|..........|------LinkedHashMap
.....|------WeakHashMap
.....|------SortedMap
................|------TreeMap

 
Collection.
●..实现该接口及其子接口的所有类都可应用clone()方法,并是序列化类.

.....List.
.....●..可随机访问包含的元素
.....●..元素是有序的
.....●..可在任意位置增、删元素
.....●..不管访问多少次,元素位置不变
.....●..允许重复元素
.....●..用Iterator实现单向遍历,也可用ListIterator实现双向遍历

..........ArrayList
..........●..用数组作为根本的数据结构来实现List
..........●..元素顺序存储
..........●..新增元素改变List大小时,内部会新建一个数组,在将添加元素前将所有数据拷贝到新数组中
..........●..随机访问很快,删除非头尾元素慢,新增元素慢而且费资源
..........●..较适用于无频繁增删的情况
..........●..比数组效率低,如果不是需要可变数组,可考虑使用数组
..........●..非线程安全
.
..........Vector.
..........●..另一种ArrayList,具备ArrayList的特性
..........●..所有方法都是线程安全的(双刃剑,和ArrayList的主要区别)
..........●..比ArrayList效率低

...............Stack
...............●..LIFO的数据结构

..........LinkedList.
..........●..链接对象数据结构(类似链表)
..........●..随机访问很慢,增删操作很快,不耗费多余资源
..........●..非线程安全

.....Set.
.....●..不允许重复元素,可以有一个空元素
.....●..不可随机访问包含的元素
.....●..只能用Iterator实现单向遍历

..........HashSet
..........●..用HashMap作为根本数据结构来实现Set
..........●..元素是无序的
..........●..迭代访问元素的顺序和加入的顺序不同
..........●..多次迭代访问,元素的顺序可能不同
..........●..非线程安全

...............LinkedHashSet
...............●..基于HashMap和链表的Set实现
...............●..迭代访问元素的顺序和加入的顺序相同
...............●..多次迭代访问,元素的顺序不便
...............●..因此可说这是一种有序的数据结构
...............●..性能比HashSet差
...............●..非线程安全

..........SortedSet
..........●..加入SortedSet的所有元素必须实现Comparable接口
..........●..元素是有序的

...............TreeSet.
...............●..基于TreeMap实现的SortedSet
...............●..排序后按升序排列元素
...............●..非线程安全

-----------------------------------
 
Iterator..
●..对Set、List进行单向遍历的迭代器

..........ListIterator.
..........●..对List进行双向遍历的迭代器

-----------------------------------

Map
●..键值对,键和值一一对应
●..不允许重复的键.

.....Hashtable.
.....●..用作键的对象必须实现了hashcode()、equals()方法,也就是说只有Object及其子类可用作键
.....●..键、值都不能是空对象
.....●..多次访问,映射元素的顺序相同
.....●..线程安全的

..........Properties
..........●..键和值都是字符串

.....HashMap
.....●..键和值都可以是空对象
.....●..不保证映射的顺序
.....●..多次访问,映射元素的顺序可能不同
.....●..非线程安全

...............LinkedHashMap
...............●..多次访问,映射元素的顺序是相同的
...............●..性能比HashMap差

.....WeakHashMap..
.....●..当某个键不再正常使用时,垃圾收集器会移除它,即便有映射关系存在
.....●..非线程安全

.....SortedMap.
.....●..键按升序排列
.....●..所有键都必须实现.Comparable.接口.

...............TreeMap.
...............●..基于红黑树的SortedMap实现
...............●..非线程安全
分享到:
评论

相关推荐

    常用数据结构及其算法的Java实现.zip

    包括但不仅限于链表、栈,队列,树,堆,图等经典数据结构及其他经典基础算法(如排序等 Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995...

    数据结构实验指导书.doc

    通过学习《数据结构》实验指导书,学生能够掌握各种数据结构的特点、存储表示和典型算法的设计思想及程序实现,能够根据实际问题选取合适的数据表达和存储方案,设计出简洁、高效、实用的算法,为后续课程的学习及...

    数据结构(Java版)-线性表的实现与应用完整版.doc

    单链表是一种常用的数据结构,它的特点是每个节点仅指向下一个节点。通过实现单链表的基本操作,可以熟练掌握单链表的使用。 单链表的基本操作 单链表的基本操作包括: 1. 判断线性表是否空:isEmpty() 2. 返回...

    java编程常用英语单词解释

    38. FrameWork(java):结构、框架,指的是某个程序或系统的架构或框架。 39. Generic(java):泛型,指的是某个类型参数或泛型类型。 40. Goto(保留字):跳转,指的是跳转到某个指定的位置或标签。 41. Heap...

    数据结构(C#语言版)

    将数据结构与 C#语言和.NET 框架结合是本书的一大特点。.NET 平台是微软推出的一 个新的开发平台,目的是让“不同的语言共享同一平台”。.NET很可能成为下一代 Windows 操作系统的一部分。而 C#语言作为新一代完全...

    数据结构知识总结与结构网图

    此外,还包括了常用的数据结构算法,如查找、排序和遍历等。该资源以简明易懂的方式呈现,旨在帮助读者快速掌握数据结构的基本理论和实际运用。 适用人群: 该资源适用于计算机科学、软件工程、数据科学等相关专业的...

    尚硅谷_宋红康_第9章节练习_Java常用类.doc

    ·全程内容涵盖数据结构、设计模式、JVM内存结构等深度技术 ·企业级笔试面试题目深入源码级讲解,拒绝死记硬背 4.代码量更大、案例更丰富、更贴近实战: ·Java语言基础阶段:12720行代码,Java语言高级阶段:...

    Java集合框架.pdf

    Java集合框架是一个抽象数据类型的框架,它提供了一组接口和类,可用于处理各种类型的数据结构,如列表、队列、集、映射等。 Java集合框架的主要特点是: 1、可扩展性:Java集合框架提供了一组可扩展的接口和类,可...

    JAVA上百实例源码以及开源项目源代码

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    全国计算机二级java题库

    掌握Java语言的特点,实现机制和体系结构。 2. 掌握Java语言中面向对象的特性。 3. 掌握Java语言提供的数据类型和结构。 4. 掌握Java语言编程的基本技术。 5. 会编写Java用户界面程序。 6. 会编写Java简单应用程序...

    leetcode和oj-algs-multi-langs:C/C++、Java、Python的算法与数据结构的整理和收集,推崇TDD,使用Ba

    项目主要整理收集常用的数据结构和算法的实现,常见的面试问题的解法,还有 LeetCode、OJ 题目的(参考)解法。代码会以可读性为首要目标,其次简洁易懂,第三才考虑效率(当然这是理想)。 主要是 C 系算法(C、C++...

    Java并发编程实践.pdf

    Amino是一个开源软件,具有可操作性、跨平台性、无锁数据结构等特点,适用于多核操作系统。下面是本文档的知识点摘要: 一、Amino简介 Amino是一个Apache旗下的开源软件,面向并发编程,具有以下特点: * 可操作...

    c#数据结构(很少下到的资料)

    克努特教授用汇编语言写的《计算机程序设计技巧》第一卷《基本算法》问世以来,已经出现了用PASCAL、C、C++、JAVA等语言写的数据结构书。所以,在编者写本书之前,曾经感到很为难。目前,C#语言作为微软在新一代开发...

    尚硅谷_宋红康_第9章_Java常用类.pdf

    ·全程内容涵盖数据结构、设计模式、JVM内存结构等深度技术 ·企业级笔试面试题目深入源码级讲解,拒绝死记硬背 4.代码量更大、案例更丰富、更贴近实战: ·Java语言基础阶段:12720行代码,Java语言高级阶段:...

    java学习记录 php转行java基础学习.rar

    然后进入Java语言基础的学习阶段,学习任何一门语言都要打好基础,曾经学过高级程序语言(C,C++等)来说,java语言基础有自己的特点,但是基本规律都是相通的,如:算法基础、常用数据结构、企业编程规范。...

    JAVA上百实例源码以及开源项目

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    二级(Java语言程序设计)考试大纲

    <font size="3"><font color="#ff0000">考试内容 </font>一、Java语言的特点和实现机制</strong><br /> <strong>二、Java体系结构</strong><br /> 1.JDK目录结构。 2.Java的API结构。 3...

    Java清华教程.rar

     ■ Java语言的基本语法规范,包括标识符、关键字、数据类型、表达式和流控制,程序基本结构;  ■ 面向对象技术的基本特点,Java语言的面向对象特性,类和对象的概念,封装性、继承性、多态性,Java语言的特殊...

    【Java数据结构与算法】稀疏数组

    线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。 线性结构有两种不同的存储结构,即顺序存储结构和链式储存结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的。 链式存储的...

Global site tag (gtag.js) - Google Analytics