java 中几种常用数据结构「建议收藏」

java 中几种常用数据结构「建议收藏」Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。一、几个常用类的区别 1.ArrayList:元素单个,效率高,多用于查询 2.Vector:元素单个,线程安全,多用于查询 3.LinkedList:元素单个,多用于插入和删除 4.H

大家好,又见面了,我是你们的朋友全栈君。

Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。

java 中几种常用数据结构「建议收藏」

java 中几种常用数据结构「建议收藏」

一、几个常用类的区别 
1.ArrayList: 元素单个,效率高,多用于查询 
2.Vector: 元素单个,线程安全,多用于查询 
3.LinkedList:元素单个,多用于插入和删除 
4.HashMap: 元素成对,元素可为空 
5.HashTable: 元素成对,线程安全,元素不可为空 
二、Vector、ArrayList和LinkedList 
大多数情况下,从性能上来说ArrayList最好,但是当集合内的元素需要频繁插入、删除时LinkedList会有比较好的表现,但是它们三个性能都比不上数组,另外Vector是线程同步的。所以: 
如果能用数组的时候(元素类型固定,数组长度固定),请尽量使用数组来代替List; 
如果没有频繁的删除插入操作,又不用考虑多线程问题,优先选择ArrayList; 
如果在多线程条件下使用,可以考虑Vector; 
如果需要频繁地删除插入,LinkedList就有了用武之地; 
如果你什么都不知道,用ArrayList没错。 
三、Collections和Arrays 
在Java集合类框架里有两个类叫做Collections(注意,不是Collection!)和Arrays,这是JCF里面功能强大的工具,但初学者往往会忽视。按JCF文档的说法,这两个类提供了封装器实现(Wrapper Implementations)、数据结构算法和数组相关的应用。 
想必大家不会忘记上面谈到的“折半查找”、“排序”等经典算法吧,Collections类提供了丰富的静态方法帮助我们轻松完成这些在数据结构课上烦人的工作: 
binarySearch:折半查找。 
sort:排序,这里是一种类似于快速排序的方法,效率仍然是O(n * log n),但却是一种稳定的排序方法。 
reverse:将线性表进行逆序操作,这个可是从前数据结构的经典考题哦! 
rotate:以某个元素为轴心将线性表“旋转”。 
swap:交换一个线性表中两个元素的位置。 
…… 
Collections还有一个重要功能就是“封装器”(Wrapper),它提供了一些方法可以把一个集合转换成一个特殊的集合,如下: 
unmodifiableXXX:转换成只读集合,这里XXX代表六种基本集合接口:Collection、List、Map、Set、SortedMap和SortedSet。如果你对只读集合进行插入删除操作,将会抛出UnsupportedOperationException异常。 
synchronizedXXX:转换成同步集合。 
singleton:创建一个仅有一个元素的集合,这里singleton生成的是单元素Set, 
singletonList和singletonMap分别生成单元素的List和Map。 
空集:由Collections的静态属性EMPTY_SET、EMPTY_LIST和EMPTY_MAP表示。

 

转载:http://blog.csdn.net/u010947402/article/details/51878166

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157001.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • aria2 txt导入_共一章 · mac下使用Aria2教程-迅雷和百度盘终极解决方案 · 看云[通俗易懂]

    #1.第一步:安装aria2##1.1下载并安装aria2下载最新的mac版本aria2(目前是1.19.3),以下提供三种下载方式(推荐第三种):1.[官网地址,可以下载其他版本](https://aria2.github.io)2.[本人百度云地址](https://pan.baidu.com/s/1ggfyQsj)密码:nyr13.[点击直接下载,aria2-1.19.3-…

    2022年4月14日
    35
  • python协程系列_python scrapy

    python协程系列_python scrapy协程的定义协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行A函数的时候,可以随时中断,去执行B函数,然后中断B函数,继续执行A函数(可以自动

    2022年7月31日
    2
  • winform界面美化

    winform界面美化 介绍如下:1.这是DELPHI的换肤软件的DOTNET版,使用简单并有皮肤编辑工具,可到官方网站去下,当前版本为:1.20.1,更新时间:2008-04-202.这次发布的版本包括了DotNetSkin的ForVS2003和VS2005两个版本。3.未破解前,如果要显示标题栏,则标题标显示的是Logo图片,样式请看官方的DEMO程序;如果不显示标题栏,则在程序启动的时候提示一个对话框(T

    2022年5月8日
    41
  • 最实用的高并发任务执行架构设计 | 架构篇

    最实用的高并发任务执行架构设计 | 架构篇目录前言高并发任务执行架构需求场景业务架构设计技术架构设计初始设计演化阶段一演化阶段二演化阶段三代码设计总结前言随着互联网与软件的发展,除了程序员,架构师也是越来越火的职业。他们伴随着项目的整个生命过程,他们更像是传统工业的设计师,将项目当做生命一般细心雕琢。目前对于项目架构而言,基本都会需要设计的几个架构。1、业务架构项目或者产品的市场定位、需求范围、作用场景都是需要在项目启动初期进行系统性分析的。在设计业务架构中,架构师还需要明

    2022年5月26日
    40
  • Django组件_django路由path

    Django组件_django路由path什么是Django中间件中间件(Middleware)是一个用来处理Django的请求(Request)和响应(Response)的框架级别的钩子,它是一个轻量、低级别的插件系统,用于在全局范围内改

    2022年7月31日
    3
  • python谷歌浏览器驱动安装失败_selenium和谷歌浏览器驱动安装

    python谷歌浏览器驱动安装失败_selenium和谷歌浏览器驱动安装selenium安装:第一步:打开cmd,切换到pip工具所在目录输入指令安装:1.默认安装最新版本selenium:pip.exeinstall-uselenium2.安装指定版本pip.exeinstall”selenium==3.9.0″3.卸载指令pip.exeuninstall”selenium”第二步:安装好之后,检…

    2022年6月12日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号