前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java数据结构告诉你如何选用数据集合(1)

Java数据结构告诉你如何选用数据集合(1)

作者头像
ZackSock
发布2020-02-14 13:51:05
3130
发布2020-02-14 13:51:05
举报
文章被收录于专栏:ZackSockZackSock

开始学习编程的时候,目的在于如何实现功能。在我们熟悉编程之后,发现实现的方法是多种多样的。我们操作一个班级,可以选择数组、List、Set甚至于Map。但是具体实行起来,会发现情况复杂多变。而这个时候,实现方法的多样性也让我们束手无策。这个时候就需要数据结构登场了,学习数据结构我们就可以根据不同的情况选取最优的实现方法。当然了,还有一部分工作要结合软件工程和设计模式来实现。

下面我们来了解一下几个问题:

1、什么是数据结构?

2、数据结构有什么用?

3、数据结构在Java中的具体表现是什么?

下面一个个来解决这几个问题。

1、数据结构是以某种形式将数据组织在一起的合集。数据结构不仅是存储数据,还支持访问和处理数据的操作。也就是说数据结构是:一组有组织的数据数据+数据的处理操作。

2、提高软件性能,这个在后面具体的数据结构中会了解到。

3、在Java中,一种数据结构就是一个容器,或者容器对象。(List、Set)

下面才是正题,线性表。

一、线性表的概念:

今天就来具体讲一下线性表。关于线性表的定义我这里就不赘述了,有一点理解线性表非常关键。线性表元素之间是一对一的关系,就是说线性表中的一个元素最多只有一个前驱元素和一个后继元素。通俗讲就是“前面一个,后面一个”。

二、线性表的存储结构

1、顺序存储结构:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素

2、链式存储结构:在计算机中用一组任意的存储单元存储线性表的数据元素

可能上面两句话没有解释太多内容,不过不要紧,后面会具体讲。

三、顺序表

1、什么是顺序表:顺序存储结构的线性表(哈哈,就是这样)

2、顺序表的特点:

①元素存储在一段连续内存当中

②查找速度快

③插入数据速度慢

3、Java中的线性表ArrayList

在Java中,ArrayList就是一个线性表。List结构就是一个线性表的数据结构,它规定了线性表的共同属性和操作。在学习集合的 时候,发现List有一大堆实现类。其中ArrayList和LinkedList就是两个非常常用而且重要的类,它们也代表了线性表的两种存储 结构。ArrayList就是顺序存储结构,而LinkedList就是链式存储结构。

4、用Java编写一个顺序表

因为篇幅的问题,后面我会另外写两篇或者一篇关于手动写顺序表和链表的文章。这里主要讲一些内容。

线性表是通过数组实现的

②当数组长度不够时要重新创建一个数组(Java中数组是定长的)

四、链表

1、什么是链表:链式存储结构的线性表

2、链表的特点:

①元素在内存中随机存储

②查找速度效率低

③插入速度效率高

3、Java中的链表LinkedList:上面已经讲了,这里就不赘述了。

4、用Java编写一个顺序表

链表是通过节点实现的

②节点里面有节点数据以及下一个节点的地址

除了ArrayList和LinkedList,Java中还有许多其它的线性表。以后有机会和大家细细研究。关于线性表的实现,后面也会补齐文章

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新建文件夹X 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档