一、IO流概述IO:指的是输入/输出(Input/Output)流:是一种抽象概念,对数据传输的总称。即数据在设备间的传输为流,本质是数据传输IO流:用来处理设备间数据传输问题的,常见的应用有文件上传、下载、复制二、IO流的分类1.按照数据的流向可以分为以下两种输入流:读数据输出流:取数据2.按照数据类型来分字节流:字节输入流、字节输出流字符流:字符输入流、字符输出流一般情况下,IO流的分类是按照数据类型来分的字符流与字节流的应用场景字节流:什么时候都可以用,字节流是万能的流字符流:当你将文件打开后内容是能看得懂的用字符流三、字节流写数据字节流抽象基类1.InputStream:该抽象类是表示
需求:编写程序实现遍历目录下的文件并输出分析:1.根据给定的路径创建一个File对象2.定义一个方法,获取给定目录下的所有内容,参数为第一步的File对象3.获取给定的File目录下所有的文件或者目录的File数组4.遍历该File数组,得到每一个File对象5.判断该File对象是否为目录是:递归调用第二步调用的方法不是:获取绝对路径输出6.调用方法/*实现遍历目录**/publicclassDemo01{ publicstaticvoidmain(String[]args){ //根据指定的路径创建一个File对象 Filef=newFile("F:\\新建文"); //调用方
需求:实现斗地主的洗牌、发牌、看牌分析:1.创建一个牌库,用于存放54张牌,使用ArrayList来实现2.创建两个数组1.存放牌的颜色分类colors,2存放具体牌3.将牌放入牌库4.洗牌,使用Collections.shuffle()方法实现5.定义发牌方法6.定义看牌方法代码:/**实现斗地主的简单操作洗牌、发牌、看牌**/publicclassFightAgainstLandlords{ publicstaticvoidmain(String[]args){ //创建一个牌库,用于存放54张牌,使用ArrayList来实现 ArrayListal=newArrayList();
一、需求:创建一个ArrayList集合,存储三个元素,每一个元素都是HashMap,每一个HashMap的键和值都是String,并遍历分析:1.创建一个ArrayList集合2.创建一个HashMap集合键和值都是String3.将HashMap作为元素添加到ArrayList中4.遍历 publicstaticvoidmain(String[]args){ //创建ArrayList集合 ArrayList>al=newArrayList>(); //创建HashMap集合 HashMaphm=newHashMap(); //添加键值对 hm.put("01","
一、概述:InterfaceMapk:键的类型;V:值的类型将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值二、创建Map集合的对象方式1.使用多态的方式2.具体实现类HashMappublicstaticvoidmain(String[]args){ //创建Map集合对象 Mapm=newHashMap(); //添加元素使用put方法,默认自然排序 m.put("02","李四"); m.put("04","赵六"); m.put("01","张三"); m.put("03","王五"); System.out.println(m); }}
一、泛型概述:泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型本质上是参数化类型,也就是说所操作的数据类型被指定为一个参数参数化类型:就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的参数这种参数类型可以用在类、方法和接口中,分别被称为泛型类、泛型方法、泛型接口定义格式:1.:指定一种类型的格式,这里的类型可以看作是形参2.:指定多种类型的格式,多种类型之间由,隔开,这里的类型可以看作是形参3.将来具体调用时给定的类型可以看作是实参,并且实参的类型只能是引用类型泛型的优点:1.把运行时期的问题提前到了编译时期,更容易发现并处理2.避免
需求:用TreeSet集合存储多个学生信息(姓名,语文成绩,数学成绩),并遍历该集合;要按照总分从高到低进行排序分析:1.创建学生类成员变量姓名,语文成绩、数学成绩;成员方法求总分;构造方法无参构造,带参构造;get\set方法2.创建测试类3.创建TreeSet集合对对象,并使用内部类的方式重写compare方法要定好排序规则,主要条件按照总分从高到底排序,在总分相同的情况下按照语文成绩排序,在两者都相同的情况下判断姓名是否相同,相同就不存储,不相同存进来,按照姓名字母进行排序4.创建学生对象,并使用带参构造添加学生数据5.使用add方法将学生数据加入到TreeSet集合中6.进行遍历 代码
一、概述数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率二、栈入栈:将数据存入栈模型的过程出栈:数据离开栈模型的过程栈顶元素:最后一个进入栈模型的元素栈底元素:第一个进入栈模型的元素栈是一种数据元素先入后出的模型,因为它只有一段有开口,称为栈顶,另一端没有开口称为栈底三、队列入对:将数据从后端进入队列模型的过程出对:将数据从前端离开队列模型的过程队首元素:第一个进入队列的元素队尾元素:最后一个进入队列的元素,也就是在队列最后的元素队列是一种数据先入先出的模型,因为它的两端都有开口三、数组数组我们
目录链表链表是啥链表的类型链表的特性结点指针特殊的结点(单链表/双向链表)特殊的结点(循环链表/双向循环链表)链表的操作插入单链表循环链表双向链表循环双向链表删除单链表循环链表双向链表循环双向链表查询单链表循环链表双向链表循环双向链表链表在实际开发中的注意事项(本段引自数据结构与算法之美)第一种情况第二种情况单链表与双向链表的区别小结链表与数组的性能表现数组链表数组与链表在插入,删除,查询复杂度比较链表的应用案例如何通过链表的方式实现LRU缓存淘汰算法缓存缓存淘汰策略思路编程语言如何实现链表参考资料链表链表是啥和数组属于同一中结构,都是线性表结构;但和数组不同的是,数组需要一组连续的内存空间来
第一部分类型和语法第一章类型JavaScript有七种内置类型:•空值(null)•未定义(undefined)•布尔值(boolean)•数字(number)•字符串(string)•对象(object)•符号(symbol,ES6中新增)typeofundefined==="undefined";//truetypeoftrue==="boolean";//truetypeof42==="number";//truetypeof"42"==="string";//truetypeof{life:42}==="object";//true//ES6中新加入的类型typeofSymbol()=