老师:
感觉还是分不清红黑树的节点怎么判断他是黑色还是红色,红色节点的子节点必须是黑色,那么怎么判断一个节点是不是红色呢?
本课小结:
自定义类如果要放入hashset中,必须实现hashCode, equals 方法。
hashSet在存储数据时,遵循以下方法:
1、根据HashCode,计算当前数据的hash值;
2、使用 y=kx方法,由hash值计算数据应当存储的位置;
3、判断目标存储位置上是否有值:
如果无值,则直接保存,
如果有值,需要调用equals方法,进行比较,相同不保存,不同则保存在当前数据之后。
hashSet的特点是,无序,唯一。
请问老师,我在修改了比对规则后,当后添加的元素key与之前元素key长度相同时,其值被覆盖,为什么key没有被覆盖呢?
老师,为什么看视频下面的答疑,感觉同学们问的问题好像跟视频里的内容有出入,这一节只有8分钟,有同学问视频中16分钟的内容,请问视频的内容是更新了吗?
HashMap存储数据的步骤:
1、计算Hashcode值
2、根据函数y=kx,由hashcode计算存储位置
3、在存储位置上,判断当前有没有数据,如果没有,直接放进去;如果有,则调用equals方法进行比较,如果相同则不处理,如果不同,则放到当前数据之后。
老师加载不出来
数据库
每一个url都能加载
找了很久就是不知道
老师,我想请教两个问题:1、我这个是按照视频里的代码敲的,而且图片文件也是放在imgs文件里的,怎么显示错误找不到路径呢,?
2、这个社区版的pycharm怎么设置代码颜色,我之前的可以显示不同颜色,而且还有代码提示。谢谢!
package cn.jscn.tz; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; public class test { public static void main(String[] args) throws ParseException { System.out.println("请输入一个日期:yyyy-MM-dd"); Scanner input =new Scanner(System.in); String str=input.next(); DateFormat df=new SimpleDateFormat("yyyy-MM-dd"); Date d=df.parse(str); Calendar cal=new GregorianCalendar(); cal.setTime(d); int nowDate =cal.get(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, 1); int dayOfWeek=cal.get(Calendar.DAY_OF_WEEK); System.out.println("日\t一\t二\t三\t四\t五\t六"); for(int i=1;i<dayOfWeek;i++) { System.out.print("\t"); } int dayMax=cal. getActualMaximum(Calendar.DAY_OF_MONTH); for(int i=1;i<=dayMax;i++) { System.out.print(i); if(i==nowDate) { System.out.print("*"); } System.out.print("\t"); if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) { System.out.println(); } cal.add(Calendar.DAY_OF_MONTH, 1); } } }
cal.add(Calendar.DAY_OF_MONTH, 1);循环每循环一次就增加一天,这个地方没有理解,我把这行代码删除后,
不是已经有判断是星期六就换行么?为什么这个代码删除后
if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) { System.out.println(); 就没有自动换行呢
老师,你上面部门名称是department_name 你这里部门号 也是department_name ,不应该是department_id 吗?? 还是你示例题目字打错了 按正常翻译理解 就应该 名称是name 号的话 是ID 才对呀
老师你这样写代码的话 高并发下 容易出现缓存穿透啊
如果books 里面有属性值,它是不是也要算一个字节点个数?(就是解析上一章课的book.xml)
package BufferedInputStream_01; import java.io.*; /* * BufferedInputStream 缓冲字节流,用于提高读取效率 * 同时也是处理流(包装流) */ public class BufferInputStream_01 { public static void main(String[] args) throws IOException{ File sourceAddress = new File(File.separator+"Users"+File.separator+"luo"+File.separator); File sourceFile = new File(sourceAddress,"Downloads"+File.separator+"pconline1572649741588.dmg"); File destniyFile = new File(sourceAddress,"Desktop"+File.separator+sourceFile.getName()); File desktopDirectory=new File(sourceAddress,"Desktop"+File.separator); byte[]buffer = new byte[10]; FileInputStream fi = new FileInputStream(sourceFile); if(fi.markSupported()) { fi.mark(fi.available()); }else { System.out.println("不支持标记"); } FileOutputStream fo= new FileOutputStream(destniyFile); long currentTime = System.currentTimeMillis(); int times=0; int length=0; while((length=fi.read(buffer))!=-1) { times++; fo.write(buffer,0,length); } fo.flush(); long finishTime = System.currentTimeMillis(); System.out.println("中转"+times+"次\t使用字节流总共耗时"+(finishTime-currentTime)+"毫秒"); //fi.reset(); fi.close(); fi = new FileInputStream(sourceFile); Reader reader = new InputStreamReader(fi); FileOutputStream tempForWriter=new FileOutputStream(new File(desktopDirectory,"(1).dmg")); Writer writer = new OutputStreamWriter(tempForWriter); times=0; length=0; char[] bufferC = new char[buffer.length]; long readerTime = System.currentTimeMillis(); while((length=reader.read(bufferC))!=-1) { times++; writer.write(bufferC,0,length); /*也许用字符来复制就是打不开*/ } tempForWriter.flush(); writer.flush(); long writerTime = System.currentTimeMillis(); System.out.println("中转"+times+"次\t使用字符流总共耗时"+(writerTime-readerTime)+"毫秒"); times=0; length=0; byte[] buffer3 = new byte[buffer.length]; long bufferedTime = System.currentTimeMillis(); //fi.reset();不支持流标记 fi.close(); fi = new FileInputStream(sourceFile); BufferedInputStream bi = new BufferedInputStream(fi); FileOutputStream tempForBuffered = new FileOutputStream(new File(desktopDirectory,"(2).dmg")); BufferedOutputStream bo = new BufferedOutputStream(tempForBuffered); while((length=bi.read(buffer3))!=-1) { times++; bo.write(buffer3,0,length); /*不加长度,复制出来的文件一定打不开*/ } bo.flush(); tempForBuffered.flush(); long bufferedFinish = System.currentTimeMillis(); System.out.println("使用buffered总共读取了"+times+"次" +"\t耗时"+(bufferedFinish-bufferedTime)+"毫秒"); writer.close(); reader.close(); tempForWriter.close(); bo.close(); bi.close(); tempForBuffered.close(); fi.close(); fo.close(); System.out.println("拷贝完成"); } }
老师您好,我的是Mac系统,为什么字节流和缓冲字节流,复制应用程序后能打开,但是字符流就是打不开,我找不到错误的地方
问题:
老师能讲解下字符流和字节流俩者之间使用的区别别吗,在应用当中。视频内使用方法基本类似,但不清楚实际运用的选择。
视频中地文档第三条,减少冲突,装填因子是0.5;这句话怎么理解呢??
如果数组中元素相同,就不再添加,那会不会出现元素个数缺是的情况,如果不会的话,那是怎么标记重复的元素的呢?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637