集合:
就是一个可以动态开辟空间的对象数组。
就是一个改变大小的容器
数组的缺点是大小预定义死了的,不能根据需要调整大小。
栈:先进后出
队列:先进先出
一个程序的效率是由算法和数据结构。
set集合:
不用放入重复的数据,因为采用了散列存储:根据数据的特征值加上哈希算法算出来的唯一地址,散列存储在快速中特别有用。
treeset:
放的元素都是可以比较的元素。
方式二:
创建一个第三方的比较器,这种方式更加灵活,有利于代码的扩展
要获得集合中的每个元素,标准方法就是用迭代器。
map:以key和value的形式放
colletion是用来存储数据,map用来查询数据。
获得所以的key用set集合,因为set集合不会重复。
map集合的迭代,先将转化为entry对象set集合,这样用map集合用于查询。
io:
1.对文件的操作
//创建文件
//stringpath = "文件的位置";
//推荐如下输入(这样写可以让代码可以在windons和linux都可以运行)
stringpath = "d:"+File.sepatator+"11"+File.sepatator+"11"+"haoren.txt";
system.out.println(path);
Filef = new File(path);
//file,separator在windons不是"\"在Liunx不为"/"。
//创建文件夹
string path ="d:"+File.separtor+"11"+File.separtor+"aa";
File++ = new file (path);
++.mkdir();
递归:
自己调用自己。
访问某个文件夹下的所有和文件夹的文件。
字符流:
字符输出流:必须关闭流,因为字符开辟缓冲去,先将数据存入缓冲区,等到关闭流或者强制刷新或者缓冲区满了才会从缓冲区写外有的文件中。
在实际开发中字节流用的比字符流多。比字符流通用
转换流:用的时候具有字符流的特点,实际底层转化成了字节流。
管道流:两个线程之间交换数据。
打印流:要依靠字节流。
重定向:默认是往控制台打印。
system.in是获得一个字节输入流,标准输入流(键盘输入),system.out标准的输出流(异常和控制台)
InputStream和OutputStream分别是字节输入流与字节输出流的基类,它们的子类都是字节流,主要用在按字节来处理二进制数据。
合并流两个文件的合并:
开辟缓冲区,这样读写的效率更高,缓冲的大学根据实际的需求要做。