1. 跪求用java语言实现一个栈和一个队列,数据元素为double型。。。具体在问题补充里
publicinterfaceMyStack<T>{
/**
*判断栈是否为空
*/
booleanisEmpty();
/**
*清空栈
*/
voidclear();
/**
*栈的长度
*/
intlength();
/**
*数据入栈
*/
booleanpush(Tdata);
/**
*数据出栈
*/
Tpop();
}
publicclassMyArrayStack<T>implementsMyStack<T>{
privateObject[]objs=newObject[16];
privateintsize=0;
@Override
publicbooleanisEmpty(){
returnsize==0;
}
@Override
publicvoidclear(){
//将数组中的数据置为null,方便GC进行回收
for(inti=0;i<size;i++){
objs[size]=null;
}
size=0;
}
@Override
publicintlength(){
returnsize;
}
@Override
publicbooleanpush(Tdata){
//判断是否需要进行数组扩容
if(size>=objs.length){
resize();
}
objs[size++]=data;
returntrue;
}
/**
*数组扩容
*/
privatevoidresize(){
Object[]temp=newObject[objs.length*3/2+1];
for(inti=0;i<size;i++){
temp[i]=objs[i];
objs[i]=null;
}
objs=temp;
}
@SuppressWarnings("unchecked")
@Override
publicTpop(){
if(size==0){
returnnull;
}
return(T)objs[--size];
}
@Override
publicStringtoString(){
StringBuildersb=newStringBuilder();
sb.append("MyArrayStack:[");
for(inti=0;i<size;i++){
sb.append(objs[i].toString());
if(i!=size-1){
sb.append(",");
}
}
sb.append("]");
returnsb.toString();
}
}
//栈的链表实现
publicclassMyLinkedStack<T>implementsMyStack<T>{
/**
*栈顶指针
*/
privateNodetop;
/**
*栈的长度
*/
privateintsize;
publicMyLinkedStack(){
top=null;
size=0;
}
@Override
publicbooleanisEmpty(){
returnsize==0;
}
@Override
publicvoidclear(){
top=null;
size=0;
}
@Override
publicintlength(){
returnsize;
}
@Override
publicbooleanpush(Tdata){
Nodenode=newNode();
node.data=data;
node.pre=top;
//改变栈顶指针
top=node;
size++;
returntrue;
}
@Override
publicTpop(){
if(top!=null){
Nodenode=top;
//改变栈顶指针
top=top.pre;
size--;
returnnode.data;
}
returnnull;
}
/**
*将数据封装成结点
*/
privatefinalclassNode{
privateNodepre;
privateTdata;
}
}
2. java中什么是栈啊
栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元素以下的其他元素.”先进后出”或”后进先出”就是栈的一大特点,先进栈的元素总是要等到后进栈的元素出栈以后才能出栈.递归就是利用到了系统栈,暂时保存临时结果,对临时结果进行保护.
对于栈的学习,建议你看一看<数据结构与算法>这本书.
3. java技术栈是什么意思一次认全9大主流技术栈 !
Java技术栈,即Java开发者广泛使用的技术组合,涵盖了Java编程语言、虚拟机、类库、Web开发框架、数据库、集成开发环境(IDE)等组件。这些技术在企业级Web应用开发中扮演关键角色,以其高可靠性、易维护性和扩展性着称。以下是Java技术栈中的9大主流技术:
Spring Framework:作为最流行的框架之一,提供依赖注入、面向切面编程和多种功能,如数据访问和Web开发。
Hibernate:作为ORM框架,简化了Java程序与数据库的交互。
Struts:MVC架构的Web开发框架,用于请求处理和数据验证。
Apache Maven:构建自动化工具,用于构建、测试和部署Java应用。
Apache Tomcat:Web服务器和Servlet容器,用于运行Java Web应用。
JUnit:Java的单元测试框架,有助于开发人员编写和测试代码。
Log4j:Java日志框架,记录和管理应用程序运行时信息和错误。
JavaFX:构建复杂图形用户界面的框架。
Apache Kafka:分布式流处理平台,适用于处理高吞吐量、低延迟的消息传递。
一个简单的Java技术栈示例,如使用Spring Boot与MySQL,涉及创建Spring Boot应用、数据库操作实体和Repository,处理HTTP请求的Controller,以及配置数据库连接和应用设置。这些技术共同简化了开发和部署过程,是Java技术栈中的核心组成部分。
4. JAVA中队列和栈的区别
队列(Queue):是限定只能在表的一端进行插入和在另一端进行删除操作的线性表;
栈(Stack):是限定只能在表的一端进行插入和删除操作的线性表。
区别如下:
一、规则不同
1. 队列:先进先出(First In First Out)FIFO
2. 栈:先进后出(First In Last Out )FILO
二、对插入和删除操作的限定不同
1. 队列:只能在表的一端进行插入,并在表的另一端进行删除;
2. 栈:只能在表的一端插入和删除。
三、遍历数据速度不同
1.
队列:基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快;
2.
栈:只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,而且在遍历数据的同时需要为数据开辟临时空间,保持数据在遍历前的一致性。
5. 我要用java实现一个栈,基本操作就是出栈入栈。请问如何实现效率比较高。
java的list的子类里面有个叫vector,这个下面有个叫做stack,可以实现!你去看 看看