老师这里的打印结果为什么有两次?第二个print()中的add(30,40)如果换成c,打印就变成一次了,是因为打印结果时又调用了一次add()方法么?
45是一个整型,默认为int型,所以short a=45;的含义是不是将45强制转化为short型了?
请问老师,我的List提示 java.util.ConcurrentModificationException
已经换了其他的遍历方法,但是还是无法正常add添加
package com.bjsxt.test; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Random; import com.bjsxt.pojo.Integral; public class RandomNumAndName { static String name = ""; static int ID = 1000; public static void main(String[] args) { List<Integral> integralList = new ArrayList<>(); for (int i = 0; i < 3; i++) { Integral integral2 = MakeOne(); if (integralList.size() > 0) { String str1 = integral2.getName(); // 这里的报错ConcurrentModificationException // for (Integral integral : integralList) { // String str2 = integral.getName(); // if(!(str2.equals(str1))) { // integralList.add(integral2); // System.out.println("添加成功"); // } // } // 换一个方法遍历 // for (int j = 0; j < integralList.size(); j++) { // Integral temp = integralList.get(j);// 获取每一个Example对象 // String str2 = temp.getName(); // if (!(str2.equals(str1))) { // integralList.add(integral2); // System.out.println("添加成功"); // } // } // 最后一种 for (Iterator iterators = integralList.iterator(); iterators.hasNext();) { Integral example = (Integral) iterators.next();// 获取当前遍历的元素,指定为Example对象 String str2 = example.getName(); if (!(str2.equals(str1))) { integralList.add(integral2); System.out.println("添加成功"); } } } else { integralList.add(integral2); } } System.out.println(integralList); } // // public static List<Integral> addList(int i) { // String str2 = ""; // List<Integral> tempi = new ArrayList<>(); // Integral integral2 = MakeOne(); // str2 = integral2.getName(); // for (int j = 0; j < i; j++) { // if (tempi.size() != 0) { // for (Integral integral1 : tempi) { // if (!(integral1.getName().equals(integral2.getName()))) { // System.out.println(integral1.getName()); // tempi.add(integral2); // } // } // } else { // tempi.add(integral2); // } // System.out.println(str2); // } // // return tempi; // } /** * 随机出来一个人的积分 * * @return */ public static Integral MakeOne() { int jif = 0; Integral temp = new Integral(); for (int j = 1; j <= 3; j++) { name = name + (char) (Math.random() * 26 + 'a'); } jif = (int) (Math.random() * 200); if (jif % 2 != 0) { temp.setGender("男"); } else { temp.setGender("女"); } temp.setID(ID); temp.setName(name); temp.setIntegralpart(jif); ID++; name = ""; return temp; } /** * 随机生成时间 * * @param beginDate * @param endDate * @return */ private static Date randomDate(String beginDate, String endDate) { try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date start = format.parse(beginDate);// 构造开始日期 Date end = format.parse(endDate);// 构造结束日期 // getTime()表示返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 if (start.getTime() >= end.getTime()) { return null; } long date = random(start.getTime(), end.getTime()); return new Date(date); } catch (Exception e) { e.printStackTrace(); } return null; } private static long random(long begin, long end) { long rtn = begin + (long) (Math.random() * (end - begin)); // 如果返回的是开始时间和结束时间,则递归调用本函数查找随机值 if (rtn == begin || rtn == end) { return random(begin, end); } return rtn; } }
请问如何能正常的添加元素?
老师,for和while循环这样写不行吗:
老师你好 我的代码写完后 图像移动到别的位置原图像不消失 可以帮我看看是什么问题吗?
代码:
"" 建立一个游戏: 1. 屏幕大小:800*600 2. 当按鼠标左键,加载向左的图片,并向左走;按下鼠标右键,加载向右的图片,并向右走。 """ #导入所需的模块 import pygame import sys ''' 建立所需的类: 1. 建立主逻辑类 2. 建立老虎类 3. 建立背景图片类 ''' #全局变量 SCREEN_SIZE = (800,600) class MainGame: screen = pygame.display.set_mode(SCREEN_SIZE,0,32) tiger = None def __init__(self): pass #建立获取事件的方法 def game_event(self): for event in pygame.event.get(): if event.type == pygame.QUIT: self.endgame() if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: print("向左掉头") MainGame.tiger.direction = 'L' MainGame.tiger.move() elif event.key == pygame.K_RIGHT: print("向右掉头") MainGame.tiger.direction = 'R' MainGame.tiger.move() elif event.key == pygame.K_UP: print("向上移动") MainGame.tiger.direction = 'U' MainGame.tiger.move() elif event.key == pygame.K_DOWN: print("向下移动") MainGame.tiger.direction = 'D' MainGame.tiger.move() #建立退出游戏的方法 def endgame(self): sys.exit() #显示屏幕并开始游戏 def startgame(self): # 加载游戏窗口 pygame.display.set_mode() # 加载游戏窗口标题 pygame.display.set_caption('测试游戏组件') # 加载背景图片 Backgroudimage().load_backgroundimage() #加载坦克 MainGame.tiger = Tiger(400,300) while True: #加载事件获取的方法 self.game_event() #加载老虎 MainGame.tiger.display_tiger() #保持窗口不消失,持续刷新窗口 pygame.display.update() class Tiger: def __init__(self,left,top): self.tigerimages = { 'L': pygame.image.load('tiger_left.gif'), 'R': pygame.image.load('tiger_right.gif'), 'U': pygame.image.load('tiger_left.gif'), 'D': pygame.image.load('tiger_right.gif') } self.direction = 'R' self.tigerimage = self.tigerimages[self.direction] self.rect = self.tigerimage.get_rect() self.rect.left = left self.rect.top = top self.speed = 10 #对老虎移动的控制 def move(self): if self.direction == 'L': self.rect.left -= self.speed elif self.direction == 'R': self.rect.left += self.speed elif self.direction == 'U': self.rect.top -= self.speed elif self.direction == 'D': self.rect.top += self.speed def display_tiger(self): #重新加载老虎图片 self.tigerimage = self.tigerimages[self.direction] #在屏幕上显示 MainGame.screen.blit(self.tigerimage,self.rect) #加载游戏景 class Backgroudimage: def load_backgroundimage(self): #加载背景图片 load_forest = pygame.image.load('forest.png').convert() #在主逻辑中贴上背景图片 MainGame.screen.blit(load_forest,(0,0)) MainGame().game_event() MainGame().startgame() ''' 心得: 1. 注释也要遵照缩进,否则报错 2. 获取事件的命令是:pygame.event.get() 3. 最后要开始游戏,需要调用主逻辑的开始方法
感觉这节课,特别不错!尤其是最后60分理论很大启发!!
我的运行结果为什么不换行,代码是一样的,而且在输入时光标在提示语的前面,这是为什么?
老师,您好。我的输出为什么有编码问题啊,代码如下
package com.xxzy.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; /** * 服务器 * @author 吉仁 * */ public class Test { public static void main(String[] args) { ServerSocket ss=null; Socket s=null; BufferedReader br=null; try{ ss=new ServerSocket(8888); s=ss.accept(); br=new BufferedReader(new InputStreamReader(s.getInputStream(),"utf-8")); String str=null; while((str=br.readLine())!=null) { System.out.println(str); } }catch(IOException e) { e.printStackTrace(); }finally { CloseTest.CloseAll(ss,s,br); } } }
信息打印入下:
老师好,窗口继承自 javax.swing.JFrame,为什么闪的还是特别厉害?
我的虚拟机地址是192.168.137.128,可以ping通,144和188无法ping通,配置文件打开只有这些,比视频中少很多,是为什么呢
为啥我下的没有JRE
老师似乎讲的过于简单了,四个必要条件也没有讲清楚。
pychrm安装激活不了,是不是注册码被取消了。
老师,我想问下,当学完这一章后,自己去写游戏时,一点思路都没有,感觉很懵,完全不知道怎么去写,或者知道写的步骤,但写不出来,这种情况,需不需要重新去学呢?
构造函数中,this函数为什么要第一行,放入第二行就报错
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637