java-堆栈和queue集合的关系

问题描述

堆栈和queue集合的关系

如题,java集合里面提到了list,queue等接口,但是没提到堆栈,不是数据结构么。
另外,queue的原理是先进先出,和heap堆一样的性质。想问下堆栈和集合架构什么关系,

解决方案

谁说没有堆栈的?java.util.Stack不是么
http://blog.csdn.net/a19881029/article/details/9408649

解决方案二:

追问:集合架构方面几个接口是list,queue,sort等。并没有提到常说的堆栈,数据结构书上说stack就是一种先进后出的特殊list,而queue又有先进后出的特性和heap一样。似乎heap被称作优先队列。这几个概念的关系是不是heap是一种特殊的queue,queue和stack都是一种特殊的list

解决方案三:

其实你自己说的也挺清楚了,我帮你补充下:集合的最高接口Collection,之下有两个子接口分别是List和set,队列Queue接口之下有子接口Deque即双端队列,用于实现栈的需求,堆栈在Java中也就没有单独提供接口了;有一个实现类LinkedList既实现了List,又实现了双端队列Deque,这就造成了他们之间的联系如你所说的现象,队列是特殊的集合,堆栈也是特殊的集合;也就这么多了,多的也不会了,希望对你有用!

时间: 2024-09-18 13:18:07

java-堆栈和queue集合的关系的相关文章

Java堆栈详解

一.准备知识         Java中变量分为基本数据类型和引用类型,前者分配在栈内,出了作用域就自动释放,后者分配在堆内或者常量池(比如字符串常量和基本数据类型常量),需要new出来.在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.堆内存用于存放由new创建的对象和数组.数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉.这个也是java比较占内存的主要原因,实际上,栈中的变量指向堆内存中的变

java堆栈浅谈

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用. 堆内存用于存放由new创建的对象和数组.在堆中分配的内存,由java虚拟机自动垃圾回收器来管理.在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中

java中数组转集合问题.

问题描述 java中数组转集合问题. List test = java.util.Arrays.asList(new int[]{3, 5, 3, 4}); 为什么这个会报错,也会报错. List test = java.util.Arrays.asList(new Double[]{3, 5, 3, 4}); 这个却不会报错,而且能用增强for,为什么Integet却连转都转不了. 还有,基本数据类型数据能有办法转集合吗? 数组转集合后是不是不能添加元素. 解决方案 List test = j

有谁用过angularjs,java后台传值list集合前台该怎么接受

问题描述 有谁用过angularjs,java后台传值list集合前台该怎么接受 angularjs怎么接受java传的值啊,看不懂api求帮助!!!!!! 解决方案 首先,java后台响应的List应该时转成json格式的字符串给前台了吧,在前台接收后直接用就可以了吧. 解决方案二: 笔者在用,list集合要通过json转成数组传给前台. 解决方案三: angular js很好的前端框架,angular js接收数据的格式为json的.你要把从后台传过来的数据转换成json格式. 如后台传过来

跟老齐学Python之集合的关系_python

冻结的集合 前面一节讲述了集合的基本概念,注意,那里所涉及到的集合都是可原处修改的集合.还有一种集合,不能在原处修改.这种集合的创建方法是: >>> f_set = frozenset("qiwsir") #看这个名字就知道了frozen,冻结的set >>> f_set frozenset(['q', 'i', 's', 'r', 'w']) >>> f_set.add("python") #报错 Traceb

java实现列表、集合与数组之间转化的方法_java

本文实例讲述了java实现列表.集合与数组之间转化的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package test;  import java.util.ArrayList;  import java.util.Arrays;  import java.util.HashSet;  import java.util.List;  import java.util.Set;  public class Test2 {      public static void

Java中类与类之间的关系

Java中类与类之间的关系存在以下关系: 1.泛化(Generalization) 很简单,就是我们常说的继承.是说子类获得父类的功能的同时,还可以扩展自己的功能. 如图: Java代码中表现为:extends和implements 2.依赖(Dependency) 两个相对独立的咚咚(A和B),当A负责构造B时,A与B形成依赖关系,即A使用B. 如图: Java代码中的表现为局部变量,方法的参数,以及对静态方法的调用 3.关联(Association) 两个相对独立的咚咚(A和B),当A对象持

Java中对List集合的常用操作详解_java

目录: 1.list中添加,获取,删除元素: 2.list中是否包含某个元素: 3.list中根据索引将元素数值改变(替换): 4.list中查看(判断)元素的索引: 5.根据元素索引位置进行的判断: 6.利用list中索引位置重新生成一个新的list(截取集合): 7.对比两个list中的所有元素: 8.判断list是否为空: 9.返回Iterator集合对象: 10.将集合转换为字符串: 11.将集合转换为数组: 12.集合类型转换: 备注:内容中代码具有关联性. 1.list中添加,获取,

【java开发系列】—— 集合使用方法

前言 在java中提供给我们了一些类似C++泛型的简单集合,list,set,map等.这里,简单介绍一下这些集合容器的使用方法,以及复杂对象元素的自定义排序. 首先看一下集合的框架图: 由于collection也继承了Iterator和comparable接口,因此我们可以使用Iterator来遍历元素,也可以通过自定义compareTo函数来重新编写自己的排序. List 1 package testCollection; 2 3 import java.util.ArrayList; 4