一开始接触容器时,总感觉里面东西很多很难。学完总结一下,常用的无非以下几种,方法也无需全部记住,记住几个关键的即可,其中红色的方法务必记住。
Collection
├List
│ ├LinkedList
│ ├ArrayList
│ └Vector
│ └Stack
└Set
Hashset
Map
├Hashtable
├HashMap
└WeakHashMap
1、Collection:(常用的子接口Set和List)
常用的方法:
int size(); boolean isEmpty(); void clear(); boolean contains(Object element);
equals boolean add(Object element); boolean remove(Object element) ; boolean containsAll(Collection c);
boolean addAll(Collection c); boolean removeAll(Collection c); boolean retainAll(Collection c); //求交集
eg:size():此时容器当中的元素个数; contains(Object o):是否包含给定的o值;
Array读快改慢
Linked改快读慢
Hash搜索极快,遍历极慢
Tree插入/搜索都比较快,适合做索引
(1)Set:无序不可重复;常用的实现类:HashSet,TreeSet;
无序:第一次随机,接下来如果没有其它元素的加入或退出,则一直保持这个的顺序,有别于随机;
不可重复:小心“对象”问题,必须先重写equals和hashcode()方法;hashcode()判断两个对象是否指向同一个对象;
常用方法:Set接口本身不提供额外的方法,所有的方法都来自Collection;
常用实现类:HashSet(),TreeSet();
(2)List:有序可以重复;常用的实现类:ArrayList;LinkedList;
常用方法:除了Collection里面的方法外,还有如下:
Object get(int index); //通过下标输出下标对应的值
Object set(int index, Object element); //通过下标去替代相应的下标值
void add(int index, Object element); //表示从index位置插入给定的o值 add(Oject o);
Object remove(int index); //删除下标所对应的元素
int indexOf(Object o); //获取o值在给定容器中第一个出现的索引
int lastIndexOf(Object o); // 获取0值在给定容器中最后出现的索引
remove(int index);//表示通过下标去移除对应下标的值 ,
注意:如果给定的值有Integer类型,不以具体的值来移除,而是以下标对应的值进行移除;remove(Object o);
注意:ArrayList里面有两个add(),remove()?答:一个方法来自Collection;另一个来自自身的方法.
(3)Map接口:它是由K,V值组合而成,且K值不能重复;
常用的实现类:HashMap:无序;
TreeMap:按照K值大小来进行输出;
LinkedHashMap:按照输入的先后顺序进行输出;
常用的方法:
Object put(Object key, Object value);
Object get(Object key); //返回key值所对应的value值;
Object remove(Object key);
boolean containsKey(Object key); //包含键值,常用来判断用户名是否存在的方法
boolean containsValue(Object value);
int size();
boolean isEmpty();
void putAll(Map t);
void clear();
keyset():把Map里面的K值赋值给Set接口;
values():把Map里面的V值赋值给Collection接口;