java集合框架总结



java集合框架总结
今天我把集合框架常用的方法进行了总结 在JDk1.5后出现了泛型
如果学过泛型的朋友看这个总结会舒服些
当然没学过的也没关系<E>,<? extends E> .....这些东西不必管!!
***Collection<E>接口(共性的方法)
1.基本共性方法
(1)boolean add(E e);添加元素
(2)void clear();删除所有元素
(3)boolean remove(Object o);移除指定的元素
(4)boolean contains(Object o);包含指定元素
(5)boolean isEmpty();是否为空
(6)int size();返回集合的元素数

2.以下是关于+All的共性方法,都是针对两个集合而言的
(1)boolean addAll(Collection<? extends E> e);将指定的一个集合添加到此集合
(2)boolean containsAll(Collection<?> e);判断元素是否包含在此元素中
(3)boolean removeAll(Collection<?> e);移除包含于此集合的指定集合
(4)boolean retainAll(Collection<?> e);两个集合的交集
3.关于Collection的迭代器方法
Iterator<E> iterator();返回迭代器接口
Iterator内部方法
(1)boolean hasNext();如果有元素可迭代返回true
(2)E next();返回迭代下一个元素
(3)void remove();移除迭代器返回最后一个元素
**|---------List(有序可重复的)
1.List接口继承了Collection所有的方法
2.因为List集合石有序的,我们可以对其元素进行精确控制
(1)void add(int index E element);在列表中插入指定元素
(2)E get(int index);返回列表中指定位置的元素
(3)E set(int index E element);替换列表中指定元素,返回替换前的元素
(4)E remove(int index);移除列表中指定元素,返回删除的元素
3.List 集合遍历的方式
(1)通过Collection的迭代器的方式
(2)通过get方法,通过for循环得到LIst集合中的元素(因为List集合石有顺序的)
(3)通过自身的ListIterator,因为ListIterator继承了Iterator
但是除此之外,ListIterator还有自己特定的方法
A.void add(E e);将指定元素插入列表
B.void set(E e);指定元素的替换
*|---------ArrayList
1.实现的方式---可变的数组
2.特点
它的底层是通过数组实现的,每一次数组扩充50%,ArrayList是线程不安全的,在单线程中使用
3.继承了List的所有的方法
void trimToSize();调整为当前大小的集合
*|---------LinkedList
1.实现的方式---双向链表
2.可以很好的操作头尾元素
3.特有的方法
(1)void addFirst(E e);将指定元素插入到列表的开头
(2)void addLast(E e);将指定的元素插入到列表的末尾(结尾)
(3)E element();获取但不移除列表的头(第一个元素)
(4)E getFirst();返回列表的第一个元素
(5)E getLast();返回类表的最后一个元素
(6)E removeFirst();删除集合中的首元素,并返回这个元素
(7)E removeLast();删除集合中的末尾元素,返回这个元素
*|---------Vector
1.是早期应用使用的一个类,ArrayList是他的替代
Vector每次增加100%,线程安全
**|---------Set(无顺序不可重复)
1.他是靠hash表和equals来控制元素的唯一性
2.对于set它的迭代只能使用迭代器一种方法
*|---------hashSet
底层是使用hash表 无顺序不可重复,线程不安全
hashSet怎样表示元素的唯一性
(1).两个元素的hashCode不一样,不会判断equals,直接就能装入.
(2).两个元素的hashCode一样,equals为false,能装入
(3).两个元素的hashCdoe一样,equals为true,不能装入.
|---------LinkedHashSet
元素装入顺序与取出顺序一致.线程不安全
*|---------TreeSet(有顺序不可重复)
TreeSet底层是使用二叉树来实现的,线程不安全的,使用效率比较地下
TreeSet元素中必须有自然顺序或是比较器
(1)使用自然顺序   
就是实现comparable接口,从写compareTo
a.怎样排序--根据compareTo的返回值是正数还是负数
b.怎样唯一--根据compareTo的返回值是否为0;
(2)使用比较器
A.就是实现comparator接口,从写compare
a.怎样排序--根据compare的返回值是正数还是负数
b.怎样唯一--根据compare的返回值是否为0;
注意:使用比较器要在创建时作为参数传递

B.什么时候使用比较器
我们在开发中,发现集合中的元素已经存在了自然顺序,但是我们
想要进行排序的条件不是按照元素的自然顺序排序。这时就可以
自己去做比较器。



1.自然顺序 Comparable----compareTo(Object obj)
2.比较器   Comparator----compare(Object o1,Object o1)





------- 闫继闯写于北京--------------
黑马ID:疯狂程序
QQ:654070989












  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值