1.集合框架的特点:
- 可以放入任何值
- 可以自动控制大小
- 提供多种访问和修改方法
2.Collection 是集合框架的根接口
3.集合框架分为是否有序,是否允许重复,没有Collection的直接实现类,都是其子接口的实现类
4.Collection 的实现子接口有Set接口和List接口
5.List接口有序(存入和取出顺序不变)重复(可以放入相同值),Set接口无序(存入和取出顺序不相同,不保证取出顺序恒久不变)不重复
6.List接口常用实现类:ArrarList和Vector其中ArrayList都具有List接口功能Arraylist可以放入包括null值在内的所以元素Vector同样,但ArrarList是线程不安全的,Vector是线程安全的。
7.Set接口常用实现类:HashSet,HashSet具有Set集合具有的特点,是线程不安全的。
8.集合和Set如果放入重复值后面的覆盖前面
9.Map接口:键值对集合常用实现类:HashMap和HashTable,HashMap是非线程安全的,HashTable是线程安全的
10.Map接口的key是Set集合不允许出现重复值,value是List可以出现重复值,如果key重复后面替换前面,value同样替换
11.集合迭代:
- for循环
for(int i=0;i<set.size();i++) { System.out.println(set.get(i)); }
- foreach循环
for(Object o:set) { System.ouy.println(o); }
- Iterator 迭代
Iterator it = new set.iterator(); while(it.hasNext){ System.out.pringln(it.next()); }
12.jdk1.5后一般迭代用foreach循环
13.ArrayList默认长度为10,如果元素超过10个则自动扩展10个
14.当两个对象比较HashCode()方法返回值相同时,equals()方法返回值不一定相同,equals()方法返回值相同时,HashCode()返回值是相同的。
15.泛型
- 用法:集合<数据类型> 集合名 = new 集合<数据类型>();
Set<String> set = new ArrayList<String>(); Map<String,ArrayList> map = new HashMap<String,ArrayList>();
- 控制集合框架的数据类型
- 当集合使用泛型时将不再接收其他数据类型。
- 当泛型是基本数据类型是应该使用他们的包装类型定义
- 使用泛型可以提高集合处理速度,减少错误,使用方便,不用在对数据类型进行强制转换
- 使用集合时推荐使用泛型
16.单例模式:只创建一个对象,无法创建出的二个对象
17.单例模式使用
- 私有化构造方法
- 提供一个公有的可以返回该对象的静态方法
- 定义一个接收该对象的私有的静态属性
public class Bank {
/*
* 设计模式-单例模式
* 1.私有化构造方法
* 2.提供可以返回该类对象的公有的静态方法
* 3.创建一个接受该对象的静态属性
*/
private Bank() {}
private static Bank bank;// = new Bank();
public static Bank getIntances() {
if(bank == null) {
bank = new Bank();
}
return bank;
}
}
18.单例模式分类
- 延迟加载:懒汉式
public class Bank { private Bank() {} private static Bank bank;// = new Bank(); public static Bank getIntances() { if(bank == null) { bank = new Bank(); } return bank; } }
- 非延迟加载:饿汉式
public class Bank { private Bank() {} private static Bank bank = new Bank(); public static Bank getIntances() { return bank; } }