()
容器的部分的总结:
容器的两大分支接口,1、Collection接口。2、MAP接口
1、Collection接口,分为2个子接口,Set接口和List接口
(a)List的接口的特性,元素是有序排列,可以重复,实现类有:ArrayList/LinkedList/Vector
其中ArrayList和Vector底层数据结构相同,都是有数组实现的,不同的是,ArrayList是非线程同步的,Vector是线程同步的;
LinkedList底层使用链表结构实现;
ArrayList/Vector和LinkedList相比前者查询效率高,增效效率低,后者查询效率低,增删效率高。
(b) Set中的元素没有顺序,不可重复。常用的实现类有HashSet和TreeSet。
HashSet:采用哈希算法实现,查询效率和增删效率都比较高。
TreeSet:采用红黑树数据结构,内部需要对存储的元素进行排序。因此,对应的类需要实现Comparable接口。重写compareTo()方法比较对象之间的大小,或者调用外部比较器才能进行内部排序。

2、 Map接口
Map接口的特性:类用来存储键(key)-值(value) 对。
Map接口的实现类有HashMap和TreeMap等。Map类中存储的键-值对通过键来标识,所以键值不能重复。
(a)HashMap底层使用哈希表(数组+链表),允许key和Value可以是Null,key是唯一的,所以key为Null只能有一个;
(b)TreeMap使用红黑树进行实现,key是唯一有序的(升序)
value可以不唯一

泛型Generics
JDK1.5以后增加了泛型。泛型的本质就是“数据类型的参数化”。 我们可以把“泛型”理解为数据类型的一个占位符(形式参数),即告诉编译器,在调用泛型时必须传入实际类型。泛型的运用范围可以是类,接口,方法;
(1) 向集合添加数据时保证数据安全。(2) 遍历集合元素时不需要强制转换。
代码演示


Iterator迭代器是用于遍历各种容器时使用;
使用方法:
boolean hasNext ( ) 如果迭代具有更多元素,则返回true。
代码演示


Collections工具类
java.util.Collections继承于java.util.Collections是一个对于集合操作的工具类。
提供的方法都是静态的,可以通过类名.方法名直接调用
代码演示

IO流
IO流相关的类
InputStream/Reader/OutputStream/Writer(都是抽象类)
1、IO即输入输出(Input/Output)。
输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是“读”,读取外部数据)。
输出(Output)指的是:程序输出数据给外部系统从而可以操作外部系统(核心含义是“写”,将数据写出到外部系统)。
2、流-----输入(Input)和输出(Output)的这个过程。
流的分类:
a、按照f方向分类:输入流和输出流
输入流:InputStream/Reader(抽象类)
输出流:OutputStream/Writer(抽象类)
b、按照读写大小分类:字节流和字符串流
字节流,每次读写1字节:InputStream/OutputStream
字符串流,读写单位是字符(也就等于2字节):Reader/Writer
c、按照功能划分:
节点流:直接操作数据的流,可以单独使用
FilelnputStream/FileOutputStream/FileReader/FileWriter
处理流:为了增强流的读写效率而设计流处理流必须结合节点流进行使用,不能单独使用。
缓存流: BufferedInputStream/BufferedOutputStream/BufferedReader/BufferedWriter
转换流: InputStreamReader/OutputStreamWriter
………
输入流的实现类FileInputStream的使用方法
常用方法代码演示

输出流的实现类FileOutputStream的使用方法
演示代码

输入流的实现类FileInputStream和输出流的实现类FileOutputStream的综合使用复制一个文件
演示代码
