Java学习笔记_03

List集合

最常见的三种实现类:ArrayList、LinkedList、Vector

常用方法:

  • boolean add(E e):将指定元素追加到此列表的末尾。
  • void add(int index, E element):将指定元素插入此列表中的指定位置。
  • boolean addAll(Collection<? extends E> c):按照指定集合的迭代器返回的顺序,将指定集合中的所有元素附加到此列表的末尾。
  • boolean addAll(int index, Collection<? extends E> c):将指定集合中的所有元素插入到此列表中的指定位置。
  • void clear():从此列表中删除所有元素。
  • int indexOf(Object o):返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1
  • int lastIndexOf(Object o):返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1
  • E set(int index, E element):用指定的元素替换此列表中指定位置的元素。
  • List subList(int fromIndex, int toIndex):返回此列表中指定的fromIndex和toIndex之间的视图。区间[fromIndex, toIndex)左闭右开。
  • boolean remove(Object o):从列表中删除指定元素的第一个出现(如果存在)
  • boolean removeAll(Collection<?> c):从此列表中删除包含在指定集合中的所有元素
  • Object[] toArray():以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组
  • int size():返回此列表中的元素数
  • Iterator iterator():以正确的顺序返回该列表中元素的迭代器
  • ListIterator listIterator():返回列表中的列表迭代器(按照适当的顺序)
LinkedList特有方法:
  • void addFirst(E e):在该列表的开头插入指定的元素
  • void addLast(E e):将指定的元素追加到此列表的末尾
  • E getFirst():返回此列表中的第一个元素
  • E getLast():返回此列表中的最后一个元素
  • E removeFirst():从此列表中删除并返回第一个元素
  • E removeLast():从此列表中删除并返回最后一个元素
Vector特有方法
  • void addElement(E obj):将指定的组件添加到此向量的末尾
  • E elementAt(int index):返回指定索引处的组件
  • Enumeration elements:返回此向量的组件的枚举
  • boolean removeElement(Object obj):从此Vector中删除参数的第一个(最低索引)组件
  • void removeElementAt(int index):删除指定索引处的组件
  • boolean removeAll(Collection<?> c):从此Vector中删除指定集合中包含的所有元素
  • void removeAllElements():从此想两种删除所有组件,并将其大小设置为0
ArrayList/LinkedList/Vector的异同?ArrayList底层是什么?扩容机制Vector和ArrayList的最大区别:
ArrayList和LinkedList的异同:
  • 二者都线程不安全,相对于线程安全的Vector来说,执行效率高。
  • 此外,ArrayList是实现了基于动态数组的数据结构,对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList需要移动指针。
  • 对于添加add和删除元素remove,LinkedList比较占据优势,因为ArrayList需要移动数据。
  • 笼统来说:LinkedList:增删改快______ ArrayList:查询快
ArrayList和Vector的区别
  • Vector和ArrayList几乎是完全相同的,唯一的区别在于Vector是同步类(synchronized),属于强同步类,因此开销比ArrayList大,访问要慢。
  • Vector每次扩容请求其大小的二倍空间,而ArrayList是1.5倍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值