集合框架

   1.什么是集合?用来存储一堆数据的容器,不需要考虑容量问题,会自动扩容
   2. Collection:集合的父类型,是一个接口。
                       其中有两个子接口:
                                                    List:有序可重复
                                                    Set:无序不可重复
                                                    重复不重复是指元素之间使用equals比较的

1:父接口Collection

   常用方法:
      boolean add(Object e):增加元素
      boolean remove(Object obj)
      boolean addAll(Collection c):两个集合合并
      boolean removeAll(Collection c):移除交集
      boolean retainAll(Collection c):保留交集
      void clear():清空集合
      boolean isEmpty():判断此集合是否含元素
      int size():返回这个集合中元素的数量。
      Object[] toArray():返回一个包含此集合中所有元素的数组
      boolean contains(Object o):如果该集合包含指定的元素,则返回true。更正式地说,当且仅当此集合时返回true ,至少包含一个元素
      Iterator<E> iterator():一个迭代器遍历这个集合中的元素
2:List子接口----线性表
    boolean add(E e):将指定的元素追加到列表的末尾
    void add(int index, E element):将数据插入到指定索引的地方
    E set(int index, E element):将列表中指定位置的元素替换为 *指定元素(可选操作):此方法不会改变集合的长度
   public E remove(int index)
   public E get(int index):获取元素
   public int lastIndexOf(Object o):
   public int indexOf(Object o)返回元素的下标,返回-1说明没有此元素
    List<E> subList(int fromIndex, int toIndex):列出从fromIndex所索引到toIndex索引的数据

   public boolean contains(Object o):判断是否包含元素o
  常用的实现类:
  ArrayList:
    private static final int DEFAULT_CAPACITY = 10;数组默认初始长度
       是线性结构内部封装的是动态的数组。长度的增加和减少已经被封装。可以理解为自动的。
             
  LinkedList:
      是双向循环链表结构。一个元素里存了前一个元素的地址和后一个元素的地址。连到一起很像一链条。
  ArrayList和LinkedList的区别:  ArrayList:  查找快(有序的),增删慢   (数组)
                                                        LinkedList:增加删除快(链表),查找慢  (无序的)  

ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更象数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更象一个链表结构,所以,它们在性能上有很大的差别
 ArrayList和 Vector都采用线性连续存储空间 ,他们之间的区别:  ArrayList 线程不安全,效率高
                                                                                             Vector: 线程安全,效率低。

                                            1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
                                             2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

由数组转换成的集合不能进行增删操作。否则会出现异常,想进行增删改查,就在定义一个集合
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值