1.JAVA中集合都存放在java.util包中
2.JAVA集合中主要分为三种类型:Set,List,Map。我写的这篇文章主要是对Set和List的理解
3.Collection是最基本的集合接口,Set和List都是通过这个接口实现的。
首先放一张图说明他们的关系
一:Collection
主要方法:
1.int size():返回集合中元素的数目
2.boolean isEmpty():返回集合是否为空,一般就用上面的size()就够了,这个很少用
3.boolean contains(Object o):判断元素是否包含在集合中
4.boolean add(E e):向集合中添加一个元素
5.boolean remove(Object o):删除集合中的一个元素
6.void clear():删除集合中所有的元素
7.Object[] toArray():返回一个数组,数组包含集合中所有元素
7.Iterartor iterator():返回一个Iterator对象,迭代器,可以用来遍历集合中的元素,iterator()中有两个方法:hasNext()判断有没有下一个元素;next():取出下一个元素
二:List
特点:
1.有下标;
2.有序的(有序不是自然顺序,不是123,abc,有序指的是存和取的顺序一致)
3.元素可重复
主要方法:
大部分继承自Collection
1.增: add(E e);add(int index,E e);
2.删: remove(Object obj);remove(int index);
3.改: set(int index,E e);
4.查: get(int index);
5.其他:size(),clear(),contains(Object obj),toArray(),iterator();isEmpty()
实现类:
1.ArrayList:底层采用数组结构,查询快,增删慢
2.LinkedList:底层采用链表结构,查询慢,增删快
3.Vector:底层采用数组结构,查询快,增删慢(具有安全性,安全性体现在哪里?做个记号,以后再补)
实现类的方法:
1.ArrayList:方法基本和List中定义的一模一样
2.LinkedList:除了和List接口中一样的方法之外,它还提供了大量首位操作的方法
增:void addFirst(E e);void addLast(E e);
删:E removeFirst();//删除首个元素,返回被删除的元素
E removeLast();//删除尾部元素,返回被删除的元素
E pop();//弹出,删除集合中的某一个元素,和 removeFirst功能是一样的
void push(E e);//推入,把一个元素添加到集合中, 和addFist功能是一样的
查:E getFirst();E getLast()
三:Set
特点:
1.无下标
2.无序的(无序指的是存和取的顺序不一定一致,LinkedHashSet和TreeSet除外)
3.不可重复
实现类:
1.HashSet:底层采用哈希表结构,查询快,增删快,无序的
2.LinkedHashSet:底层采用 链表+哈希表,查询快,增删快,有序的
保证唯一性的两个方法:
1. int hashCode():
2.boolean equals(Object obj):