1.Collection
2.Map
区别:
Collection是单列集合,HashSet和ArrayList都是只有对象,没有key,,但HashSet是根据对象的哈希值存储的且不允许有重复,其中重复的判别重写Boolean Equals(Object o)来实现
Map是双列集合,有key和value,可通过唯一key对应唯一value。
关键:
Set是无序的,List是有序的,HashMap是无序的
其中,HashSet和HashMap是根据对象的哈希值来存储对象的
常用方法:
1.Hashset
a.add(Object o);
a.remove(Object o);
a.size();//返回容器内元素个数
使用迭代器方法遍历容器
2.ArraysList(因为List容器是线性存储的,可用int pos代表每个对象的位置)
ArrayList a
a.add(Object o);
a.add(int pos,Object o);
a.set(int pos,Object o);//将pos位置的元素设置为o
a.remove(int pos);//删除pos位置元素
a.remove(Object o);//删除元素是o的元素
a.size();
需比较时重写Comparable接口
3.HashMap
a.put(key,value);
a.remove(key);
a.keySet();//返回所有key组成的集合,可与for( :)连用,for(Object i : a.keySet() ),遍历所有key值
a.size();
map使用迭代器需用keyset将所有key存入一个set再用迭代器
实质:
ArrayList是线性存储的,本质是数组每个元素都有下标志,删除一个后之后的下标向左移动一位。
HashMap有key和value,更易查找或者建立联系,不允许key重复,需重写equals和hashCode
HashSet不允许重复,需重写equals和hashCode