JAVA集合类汇总(List)(学习笔记二)

本文介绍了JAVA中的List接口及其常见的实现类ArrayList、LinkedList和Vector。ArrayList基于数组实现,适合频繁查找,增删较慢;LinkedList采用链表结构,增删快但占用更多空间;Vector是线程安全的ArrayList替代,但效率较低。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

publicinterface List<E> extends Collection<E>

        有序集合(也称为序列)。可以对每个集合内的元素由精确的控制(add.set.get.remove)可以通过其整数索引(集合的元素位置)访问元素,并搜索集合中元素的位置IndexOf(),lastIndexOf();

        

        与设置不同,列表通常允许重复的元素。更正式地说,列表通常允许对元素e1和e2进行配对,e1 = e2 (e2),如果它们允许null元素,它们通常允许多个null元素。有人可能希望实现一个禁止重复的列表,在用户试图插入时抛出运行时异常,但我们希望这种用法非常少见,这并不是不可思议的。

       列表接口对迭代器的契约、添加、删除、equals和hashCode方法进行了额外的规定,超出了集合接口中指定的规定。为了方便起见,这里还包括了其他继承方法的声明。

       List接口提供了四种方法来访问列表元素的位置(索引)。列表(如Java数组)是基于零的。注意,这些操作可能与某些实现(例如LinkedList类)的索引值成比例地执行。因此,如果调用者不知道实现,那么迭代列表中的元素通常更可取。

       List接口提供了一个特殊的迭代器,称为ListIterator,它允许元素插入和替换,以及迭代器接口提供的正常操作之外的双向访问。提供了一种方法来获取列表迭代器,它从列表中的指定位置开始。

       List接口提供了搜索指定对象的两种方法。从性能的角度来看,这些方法应该谨慎使用。在许多实现中,它们将执行昂贵的线性搜索。

       List接口提供了两种方法,可以有效地在列表的任意点插入和删除多个元素。

       注意:虽然列表可以将自己包含为元素,但建议非常谨慎:在这样的列表中,equals和hashCode方法不再被定义。

       一些列表实现对它们可能包含的元素有限制。例如,有些实现禁止空元素,有些实现对其元素的类型有限制。试图添加一个不合格的元素会抛出一个未检查的异常,通常是NullPointerException或ClassCastException。试图查询不合格元素的存在可能会抛出异常,或者它可能只是返回false;一些实现将展示前者的行为,而一些实现将展示后者。更一般的情况是,尝试对一个不合格的元素进行操作,其完成不会导致在列表中插入一个不合适的元素,可能会抛出异常,或者在实现的选项中可能会成功。在这个接口的规范中,这些异常被标记为“可选”。

        这个是JDK1.8API List的实现

修饰符和类型

方法和描述

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()从这个列表中删除所有元素(可选操作)

boolean

contains(Object o) 如果该列表包含指定元素,则返回true

boolean

containsAll(Collection<?> c) 如果此列表包含指定集合的所有元素,则返回true

boolean

equals(Object o) 将指定的对象与此列表进行比较。

E

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值