1.集合
1.1集合的类型与各自的特性
1 --|Collection:单列集合 2 --|List:有序,可重复 3 --|ArrayList:数组实现,查找快,增删慢 4 由于是数组实现,在增和删的时候会牵扯到数组增容,以及拷贝元素,所以慢。数组是可以直接按索引查找,所以查找时较快。 5 --|Vector:和ArrayList原理相同,但是线程安全,效率略低,和ArrayList实现方式相同,但考虑了线程安全,所以效率略低。 6 --|LinkedList:链表实现,增删快,查找慢,由于链表实现,增加时只要让前一个元素记住自己就可以,删除时让前一个元素记住后一个元素, 后一个元素记住前一个元素。这样的增删效率较高但是查询时需要一个一个遍历,所以查找效率较低。 7 8 --|Set:无序,不可重复 9 --|HashSet:线程不安全,存取速度快,底层是以哈希表实现的。10 --|TreeSet:红-黑树的数据结构,默认对元素进行自然排序,如果在比较的时候两个对象返回值为0,那么元素重复。11 12 --|Map:键值对,键不可以重复,值可以重复13 --|HashMap:线程不安全,存取速度快。底层是以哈希表实现的。14 --|TreeMap:红-黑树的数据结构,默认对元素进行自然排序,如果在比较的时候两个对象返回值为0,那么元素重复。15 --|HashTable:底层是使用哈希表维护的,存取速度快,存储元素是无序的。
1.2遍历集合
1.2.1遍历集合的几种方式
1、使用迭代器Iterator的方式
2、使用foreach循环方式
3、如果有下标,则可以使用下标的方式。
1.2.2遍历数组
1 public static void main(String[] args){ 2 Listlist = new ArrayList (); 3 list.add("aa"); 4 list.add("bb"); 5 list.add("cc"); 6 for(String str : list){ 7 System.out.println(str); 8 } 9 for(int i = 0;i iter = list.Iterator();iter.hasNext();){13 String str = iter.next();14 System.out.println(str);15 }16 }
2.泛型(Generic)
2.1 什么时候使用泛型:当类中操作的引用数据类型不确定的时候,就可以使用泛型类。
2.1.1 声明好泛型类型之后,集合中只能存放特定类型元素。
2.1.2 泛型类型必须是引用类型。
2.1.3 使用泛型后取出元素不需要类型装换。
3.I O 流
3 IO流的分类
输入流 | 输出流 | 说明 | |
字节流 | InputStream | OutputStream | 字节流是处理字节的(二进制) |
字符流 | Reader | Writer | 字符流是处理字符的 |
注意:这几个类都是抽象类
4.多线程
4.1 启动线程方式
4.1.1 自定义的类继承Thread类
使用代码为: new MyThread().start()
4.1.2 自定义类实现Runnable接口
使用代码为:new MyThread(new MyRunnable()).start()