数据结构(Data Structure):是相互之间存在一种或多种特定关系的数据元素的集合。

4.逻辑结构:

集合结构中的数据元素除了同属于一种类型外,别无其它关系。

线性结构结构中的数据元素之间存在一对一的关系。

树型结构结构中的数据元素之间存在一对多的关系。

图状结构或网状结构

5.数据结构的两种表达方式:

顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。

链式存储结构:在每一个数据元素中增加一个存放地址的指针,用此指针来表示数据元素之间的逻辑关系。

结构中的数据元素之间存在多对多的关系。

6.集合:

1、什么是集合

通常情况下,把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合。比如,用Java编程的所有程序员,全体中国人等。

2、什么是集合框架

集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。

任何集合

框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。

3、集合框架对我们编程有何助益:它减少了程序设计的辛劳、它提高了程序速度和质量。

7.Collection 接口是一组允许重复的对象

Set 接口继承Collection,但不允许重复,使用自己内部的一个排列机制。

List 接口继承Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。

Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。

8.数组列表

1、线性表是由n(n≥0)个相同类型的数据元素a1,a2,…,an组成的有限序列,

记作:LinearList={a1,a2,…,an} 其中,n表示线性表的元素个数,称为线性表的长度。

2、线性表的顺序存储结构:

是用一组连续的存储单元顺序存放线性表的数据元

素,数据元素在内存的物理存储次序与它们在线性表中的逻辑次序是一致的,

即数据元素ai与其前驱数据元素ai-1及后继数据元素ai+1的位置相邻。

3、为什么需要串行化:

希望ArrayList对象保存到文件中,以便于恢复使用。

9.链表

以单链表为存储结构,实现LinkedList的简化版,包括最常用的方法:

size();isEmpty();contains(Object o) ;indexOf(Object elem) ;add(Object o) ; remove(Object o) ;clear();get (int index) ;set (int index, Object element); get (int index); getFirst(),getLast(),removeFirst(),removeLast()等

10.简述LinkedList与ArrayList差别

如果应用程序对各个索引位置的元素进行大量存取/删除操作,ArrayList 对象要远远优于Linked List对象.  如果应用程序主要对列表进行循环,并且在循环的时候进行插入或者删除操作,LinkedList 对象要远远优于ArrayList对象.

11、队列

是元素的序列,在队列中:

(1) 只能在队列尾进行插入

(2)只能在队列头进行删除、获取和修改. 特点:先进先出;

12.栈

定义:

限定仅在表尾进行插入或删除操作的线性表,表尾—栈顶,表头—栈底,(允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom);不含元素的空表称空栈;

特点:先进后出(FILO)或后进先出(LIFO);

13.堆栈:

是一个元素序列。堆栈中唯一能被删除、访问或修改的元素是最近插入的元素。这个元素就是位于堆栈顶部的那个元素。

TOP–最近插入的数据元素

PUSH–入栈,在栈顶插入一个数据元素

POP–出栈,删除栈顶的数据元素

14.映射:

映射( MAP )是一种集合,集合中的每个数据元素都由两部分组成: 唯一的键(KEY )部分和值( VALUE )部分。

Java中定义:

public interface Map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如Tree Map 类;另一些映射实现则不保证顺序,如Hash Map 类。

15.TreeSet

1)TreeSet 对象是一个不允许元素重复的有序集合。

2)基本上TreeSet类的对象是所有元素都有相同值的TreeMap对象。

3)TreeSet 类和BinSearchTree类有相同的方法,但是TreeSet类比较快, 至少在最坏情况下.对于add, remove, 和contains, worstTime(n) log n, BinSearchTree 类是n的线性函数

java数据结构是什么_java数据结构相关推荐

  1. java vector内存结构_Java 数据结构

    Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictio ...

  2. java 二维链表_Java数据结构与算法----数组与链表

    数据类型 1 数据类型介绍 数据类型的分类(按照结构划分):线性结构和非线性结构 线性结构:线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系 线性结构有两种不同的存储结构,即顺序 ...

  3. java 线性表定义_Java数据结构的线性表是怎样的

    Java数据结构--线性表的顺序存储实现 一.描述 线性结构特点: (1)存在唯一的一个被称作"第一个"的数据元素 (2)存在唯一的一个被称作"最后一个"的数据 ...

  4. java快排原理_Java数据结构与算法——快速排序

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇文章介绍排序算法中最常用也是面试中最容易考到的排序算法--快排,包括快排的思 ...

  5. java循环的概念_Java数据结构之循环队列简单定义与用法示例

    本文实例讲述了Java数据结构之循环队列简单定义与用法.分享给大家供大家参考,具体如下: 一.概述: 1.原理: 与普通队列的区别在于循环队列添加数据时,如果其有效数据end == maxSize - ...

  6. java 散列集_java数据结构之散列集HashSet与散列表Hashtable

    java数据结构之散列集HashSet与散列表Hashtable 1.散列集HashSet HashSet类在java.util包中 A.构造方法:HashSet() B.常用方法 public bo ...

  7. java有链表吗_Java数据结构之链表(Linked List)

    1.链表(Linked List)介绍 链表是有序的列表,但是它在内存存储结构如下: 2.特点: 链表是以节点的方式来存储,是链式存储 每个节点包含 data 域, next 域:指向下一个节点. 链 ...

  8. java 数据结构 快速入门_Java 数据结构快速入门

    数据结构:栈 简介 栈(stack),又称堆栈,它是运算受限的线性表. 限制 栈(stack)的限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加.查找.删除等操作. 采用该结构的 ...

  9. java数据结构课程设计_java数据结构课程设计

    华东交大理工学院 课程设计(论文)任务书 电信分院2009 电子商务专业一班 一.课程设计(论文)题目走迷宫 二.课程设计(论文)工作自 2011 年6月20 日起至 2011 年6月30 日止. 三 ...

最新文章

  1. 实验电路的放大器伴侣:LMV358
  2. 当前最主流的商业模式,普通老板如何打造强大后端实现躺赚的秘诀!
  3. SCD缓慢变化维拉链表
  4. VMware内虚拟机自适应及最大化窗口调整方式
  5. 泡泡玛特通过港交所聆讯 上半年总收益8.18亿元
  6. 吴恩达机器学习第五回——支持向量机
  7. kafka练习:创建topic以及生产与消费
  8. 优化理论06-----共轭梯度法、线性共轭方向法、HS、FR-CG、PR-CG、PR+-CG
  9. ceph cluster monitor
  10. solver.prototxt参数解析
  11. java replace三个参数_javascript replace()第二个参数为函数时的参数用法
  12. 360驱动大师 2.0.0.1750 去广告去多余图标优化版(安装版 + 单文件版 + 网卡版)
  13. 华为数通ensp命令(二)
  14. smartsvn smartgit 安装 及其破解
  15. 向日葵Linux传文件,教您玩转Linux远程登录,如何用向日葵远程登录?
  16. Performance Monitor2:性能计数器
  17. win10搭FTP与单片机通信:配置+编程实现的完整流程
  18. Matlab - Solidworks 机器人建模(4)—— 如何把SolidWorks模型导入到Matlab (Simscape模型)
  19. 大话中国骨干网(下)
  20. 微信小程序(JS逻辑文件)

热门文章

  1. Activity端详
  2. java 工具类库 Apache Commons
  3. 软件巨头Salesforce带来AutoML杀手TransmogrifAI
  4. phpnow mysql密码_使用PHPnow搭建本地PHP环境+创建MySQL数据库
  5. php ini文件操作类,操作.ini文件的好PHP类
  6. java查询oracle数据库_Oracle数据库之java 从Oracle数据库到处数据到Elasticsearch全文检索库进行全文查询...
  7. python钉钉机器人发送excel附件_Python自动化办公|如何在钉钉上自动发送定制消息或通知给同事...
  8. abb变频器如何拷贝_教你变频器参数怎样简单设置
  9. matlab拉格朗日曲线_数学中高耸的金字塔——拉格朗日
  10. 页面s升级中_你的电脑要不要升级内存?怎么升级?答案都在这里