一:集合的继承关系
数据在底层的存储方式只有两种
一种是顺序存储(也就是存储的数组)
一种是链式存储
注:数组一旦初始化后长度就不可变
Collection接口:方法:
add(),addAll(),size(),clear(),isEmpty(),
remove(),removeAll(),retainAll()(取交集合),equals(),contains()(是否包含某一元素),containsAll(),hashCode()
iterator()(遍历),toArray()
|------List接口:存储有序,可有重复的元素(相当于动态的数组)
注:添加进List中的对象,类必须要重写equals()方法
|------ArrayList(主要的实现类),LinkedList(适用于频繁增删操作),Vector(古老的实现类,线程安全)
|------Set接口:存储无序,不可重复的元素(相当于高中集合的概念)
注:添加进Set中的对象,类必须要重写equals(),hashCode方法
|------HashSet(可添加null)
|------LinkedHashSet(遍历元素时,是按照添加进去的元素排序的)
|------TreeSet
Map接口(存储j键值对数据)
|------HashMap
|------,LinkedHashMap,
|------TreeMap
|------HashTable(子类)
|------Propeties:常用来处理属性文件(键和值都是String类型)
二:集合的遍历
2.1使用增强for循环
2.2使用iterator迭代器
集合list
Iterator i = list.iterator();
while(i.hasNext())
syso(i.next())
}
2.3Map集合
//利用KeySet 迭代
Iterator it = map.keySet().iterator();
while(it.hasNext()){
String key=it.next().toString();
String value=(String) map.get(key);
System.out.println(key+"-----"+value);
}
//利用EnterySet迭代
Iterator i=map.entrySet().iterator();
while(i.hasNext()){
Map.Entry entry = (Map.Entry)i.next();
String key=entry.getKey().toString();
String value=entry.getValue().toString();
Sysout(key + “------” + value);
}
三:操作集合的工具类(Collections)
3.1排序操作
3.2查找,替换
3.3同步控制