集合就是动态的对象数组,与之相关的接口包括:
1.Collection包括:List和Set。
List:包括LinkedList、ArrayList、Vector
LinkedList:内存存储方式不是一块连续的区域,每一个数据的存储格式为data+上一个数据的引用。
ArrayList:就是对数组的封装,这种方式存储是将数据存储在内存的一块连续的区域,删除和新增都会对其他数据的存储位置有影响。所以操作效率比较低。ArrayList提供的方法是非线程安全的。
vector:与ArrayList类似,但是Vector提供的方法是加Synchronized,是线程安全的。而且当容量不够时,ArrayList是增加50%容量,而Vector是增加一倍,内存消耗比较大。
Set:包括HashSet和SortedSet(但是SortedSet下只有一个TreeSet)
treeSet:是二叉树实现的,其中的数据是自动排序好的,而且不能有空值null;
HashSet:是哈希表实现的,存入的对象以hashcode进行标记,具有相同的String值的对象,hashcode值相同,所以不能重复。允许null插入,但是只能允许插入一个null;
2.Map包括:hashMap,weakhashMap,SortedMap(只有一个实现类TreeMap)
treeMap:二叉树实现,本身有序。
hashMap:哈希表实现,无序。
weakhashMap:自动释放无调用的键值对。
3.Iterator接口用法:所有实现了Collection接口的实现类都会有一个iteractor方法,返回一个实现了Iterator接口的对象。
boolean hasNext():判断游标游标是否有元素。
Object next():返回游标右边的元素。
void remove():删除游标左边的元素,只能执行一次。
4.map.entry()接口:是map的内部接口,指的是一对key-value对象。
boolean containsKey();
boolean containsValue();
Object value = get(key):
keySet();获得key的Set集合。
values();返回value的Collection集合。
遍历map的几种方法:
1. for(String key:map.keySet()){
map.getKey(key);
}
2.Iterator<Map.entry<String,String>> it = map.entrySet().Iterator();
while(it.hasNext()){
Map.entry<String,String> entry = it.next();
entry.getKey();
entry.getValue();
}
3.for(Map.entry<String,String> entry:map.entrySet()){
entry.getKey();
entry.getValue();
}