大家帮我看下我自己练习的代码错在哪了

问题描述

第一个类是食物类packageLineDistance;publicclassFood{privateStringname;privateintprice;publicFood(){super();}publicFood(Stringname,intprice){super();this.name=name;this.price=price;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetPrice(){returnprice;}publicvoidsetPrice(intprice){this.price=price;}@OverridepublicStringtoString(){return"您点了一份---"+name+"---价格是---"+price+"元";}publicStringtoString(intvv){return"厨师做好了一份---"+name+"---现在菜架上有"+vv+"菜";}publicStringtoString(intvo,intmv){return"服务员为您端来了一份---"+name+"---现在还有"+vo+"菜还没为您端过来--还有"+mv+"道菜未做完";}}下面是个方法类packageLineDistance;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Map;importjava.util.Random;importjava.util.Stack;publicclassMenu{privatestaticfinalMenuDo=null;staticMap<Integer,Food>is=newHashMap<Integer,Food>();staticint[]array=newint[10];staticintm=0;staticintsum=0;Foodp1=newFood("大白菜",10);Foodp2=newFood("大龙虾",50);Foodp3=newFood("回锅肉",30);Foodp4=newFood("麻婆豆腐",22);Foodp5=newFood("番茄鸡蛋",12);Foodp6=newFood("炒猪耳朵",26);Foodp7=newFood("宫爆鸡丁",35);Foodp8=newFood("干锅豆腐",18);Foodp9=newFood("烤羊串",3);Foodp0=newFood("萝卜汤",15);publicvoidshow(){is.put(1,p1);is.put(2,p2);is.put(3,p3);is.put(4,p4);is.put(5,p5);is.put(6,p6);is.put(7,p7);is.put(8,p8);is.put(9,p9);is.put(0,p0);}publicArrayList<Food>shoo(){ArrayList<Food>food=newArrayList<Food>();newMenu().show();Randomra=newRandom();for(inti=0;i<array.length;i++){intaa=ra.nextInt(10);array[i]=aa;food.add(is.get(aa));sum+=food.get(i).getPrice();System.out.println(food.get(i));}System.out.println("一共需要"+sum+"元");returnfood;}publicvoidDo(){ArrayList<Food>foodShelf=newArrayList<Food>();ArrayList<Food>food=newMenu().shoo();while(true){if(food.size()!=0){if(foodShelf.size()>=5){while(true){if(foodShelf.size()!=0){System.out.println(foodShelf.get(0).toString(foodShelf.size()-1,food.size()));foodShelf.remove(0);try{Thread.sleep(500);}catch(InterruptedExceptione){e.printStackTrace();}}else{break;}}}foodShelf.add(food.get(0));System.out.println(foodShelf.get(m).toString(foodShelf.size()));food.remove(0);m++;try{Thread.sleep(500);}catch(InterruptedExceptione){e.printStackTrace();}}else{System.exit(0);}}}}一个主程序packageLineDistance;publicclasslord{publicstaticvoidmain(String[]args){newMenu().shoo();newMenu().Do();}}在Do()方法第2个while循环跳出后要再进行添加食物的System.out.println(foodShelf.get(m).toString(foodShelf.size()));这行报错错误类型Exceptioninthread"main"java.lang.IndexOutOfBoundsException:Index:5,Size:1atjava.util.ArrayList.rangeCheck(ArrayList.java:635)atjava.util.ArrayList.get(ArrayList.java:411)atLineDistance.Menu.Do(Menu.java:72)atLineDistance.lord.main(lord.java:6)

解决方案

解决方案二:
packagetestString;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Map;importjava.util.Random;importjava.util.Stack;publicclassMenu{privatestaticfinalMenuDo=null;staticMap<Integer,Food>is=newHashMap<Integer,Food>();staticint[]array=newint[10];staticintm=0;staticintsum=0;Foodp1=newFood("大白菜",10);Foodp2=newFood("大龙虾",50);Foodp3=newFood("回锅肉",30);Foodp4=newFood("麻婆豆腐",22);Foodp5=newFood("番茄鸡蛋",12);Foodp6=newFood("炒猪耳朵",26);Foodp7=newFood("宫爆鸡丁",35);Foodp8=newFood("干锅豆腐",18);Foodp9=newFood("烤羊串",3);Foodp0=newFood("萝卜汤",15);publicvoidshow(){is.put(1,p1);is.put(2,p2);is.put(3,p3);is.put(4,p4);is.put(5,p5);is.put(6,p6);is.put(7,p7);is.put(8,p8);is.put(9,p9);is.put(0,p0);}publicArrayList<Food>shoo(){ArrayList<Food>food=newArrayList<Food>();newMenu().show();Randomra=newRandom();for(inti=0;i<array.length;i++){intaa=ra.nextInt(10);array[i]=aa;food.add(is.get(aa));sum+=food.get(i).getPrice();System.out.println(food.get(i));}System.out.println("一共需要"+sum+"元");returnfood;}publicvoidDo(){ArrayList<Food>foodShelf=newArrayList<Food>();//??????????ArrayList<Food>food=newMenu().shoo();while(true){if(food.size()!=0){if(foodShelf.size()>=5){//这里为0while(true){if(foodShelf.size()!=0){System.out.println(foodShelf.get(0).toString(foodShelf.size()-1,food.size()));foodShelf.remove(0);try{Thread.sleep(500);}catch(InterruptedExceptione){e.printStackTrace();}}else{break;}}}System.out.println("出错了");//=======================看这里============================foodShelf.add(food.get(0));//你在这里不停的取.取完数参数,却没做任何处理!取不到参数所以报空针异常.System.out.println(foodShelf.get(m).toString(foodShelf.size()));food.remove(0);m++;try{Thread.sleep(500);}catch(InterruptedExceptione){e.printStackTrace();}}else{System.exit(0);}}}}

看上面的注释!

时间: 2024-11-05 04:48:22

大家帮我看下我自己练习的代码错在哪了的相关文章

谁能帮我看下为什么 dynatree这段代码不执行。缺少js文件吗》?

问题描述 谁能帮我看下为什么 dynatree这段代码不执行.缺少js文件吗>? $("#classifyNumTree").dynatree("getTree").options.minExpandLevel = 8; $("#classifyNumTree").dynatree("getTree").options.initAjax.data = DATA; $("#classifyNumTree"

数据库设计-有哪位大神帮我看下这个类图有啥错不?不太懂这个,毕业图需要画,哪位大神帮帮忙

问题描述 有哪位大神帮我看下这个类图有啥错不?不太懂这个,毕业图需要画,哪位大神帮帮忙 解决方案 这个根本不是类图,而是实体关系图(E-R图),建议你问问老师到底要什么图 解决方案二: 数据库表的设计图吗?还是?

keytool-ssl的大神帮我看下这个问题吧

问题描述 ssl的大神帮我看下这个问题吧 公司的有一个服务器 一个客户端通过ssl加密连接,服务器是C写的,现在又用java写了一个,把C的放弃,由于客户端都在外面,所以客户端的证书没有办法修改(客户端有一个truststore文件),我现在从C的服务器上拿到了两个pem 文件(ca.pem,server.pem),这应该是用openssl生成的,我用keytool生成的keystore文件,在tomcat下的server.xml 里面配置下keystoreFile就可以使用了,我把这两个文件路

int-求大神 帮我看下这个存储过程哪里错了

问题描述 求大神 帮我看下这个存储过程哪里错了 DROP PROCEDURE IF EXISTS Query_Role_PhoneRecord;DELIMITER ;;CREATE DEFINER=root@% PROCEDURE Query_Role_PhoneRecord( in userId binary(16)in pagNo intin pagSize int )BEGINdeclare bSize int; set bSize=(pagNo-1)*pagSize;if(bSize<0

socket-请帮我看下客户端创建,哪里出现了错误?

问题描述 请帮我看下客户端创建,哪里出现了错误? #include #include #include #include #pragma comment(lib,"ws2_32.lib") void TCPClient() { //创建Socket SOCKET sockclient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(INVALID_SOCKET == sockclient) { return; } //连接到服务器 struc

懂webservice和ssl的大神帮我看下这个问题吧,谢谢

问题描述 懂webservice和ssl的大神帮我看下这个问题吧,谢谢 ssl单向认证,1.浏览器访问的时候不需要客户端证书,客户端访问webservice时 则需要一个客户端信任列表文件(client.truststore).浏览器访问时 是自动获取的这个证书 还是浏览器有什么特殊机制? 2.client.truststore这个信任证书是由一个服务器证书导入并生成的,能不能再导入其他的服务器证书? 解决方案 浏览器会告诉你 这个证书不安全,但是程序访问的时候会报错,因为代码默认实现的是验证证

注册表-VC如何修改浏览器的主页,先帮我看下我的代码哪儿错了

问题描述 VC如何修改浏览器的主页,先帮我看下我的代码哪儿错了 void main() { HKEY hkey1,hkey2; DWORD dwDisposition1,dwDisposition2; RegCreateKeyEx(HKEY_CURRENT_USER,"SoftwareMicrosoftInternet ExplorerMain",0,NULL,0,KEY_ALL_ACCESS,0,&hkey1,&dwDisposition1); RegSetValue

pat1019数字黑洞,有一个测试点过不去,大神们帮我看下哪错了?谢谢

问题描述 pat1019数字黑洞,有一个测试点过不去,大神们帮我看下哪错了?谢谢 #include <stdio.h> #include <stdlib.h> int comp(const void *a,const void *b){ return *(int*)a-*(int*)b; } int main(){ int n,a[4]={0},i,x,y; scanf("%d",&n); do{ i=0; while(n!=0){ a[i]=n%10;

代码-哪位大哥帮我看下,for循环执行不了,只能执行一条记录,跪谢。

问题描述 哪位大哥帮我看下,for循环执行不了,只能执行一条记录,跪谢. cust_list.asp页面中的代码如下: function del(){ var num=document.getElementById("ckcount"); if(num.innerHTML=="0") { alert('至少要选择一条记录') } else{ if(confirm('确定要删除该表资料吗?')) { var number=document.getElementById