java list e 查找_Java笔记之List<E>和ArrayList<E>

通过JAVA JDK1.6的描述:

java.util

Interface List

All Superinterfaces:

Collection, Iterable

All Known Implementing Classes:

AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector

List是一个接口,而ArrayList就是它得实现类:

java.util

Class ArrayList

java.lang.Object

extended by java.util.AbstractCollection

extended by java.util.AbstractList

extended by java.util.ArrayList

All Implemented Interfaces:

Serializable, Cloneable, Iterable, Collection, List, RandomAccess

Direct Known Subclasses:

AttributeList, RoleList, RoleUnresolvedList

其中代表的是Element(元素)的意思。

List接口是一个有序的集合,里面的元素可以是重复的。用户通过这个接口可以精确的控制集合中每个元素的插入等方法。用户也可以根据元素的索引值来搜索表中的元素。

其常用的方法有:

及(int index,Eelement) 添加单个元素以及指定的索引位置添加元素

及Collection extends E> c)将指定集合中的元素插入到此列表当中

取得索引位置的元素

移除索引位置的元素

E element)修改索引位置中的元素

ArrayList如上所致,是一个实现了List接口的类。除了实现了List接口的方法,ArrayList还提供了一些方法来操作数组的大小等。

比如它独有的一些方法:

这里有个常见的细节:

List lst = new ArrayList();

ArrayList lst = new ArrayList();

这两个声明有什么区别呢?

为什么大多数人都是这样List list = new ArrayList();声明的呢?

这么写的好处是什么呢?

这样编写的代码编译时类型是List,运行时类型是ArrayList,而List接口的实现类不只有ArrayList一个,

用一个List类型的引用这是“面向接口编程”,好处有很多,尽量面向接口编程,这里只说一个这样写的好处:

以后我们会用到很多不是我们写的类,我们叫第三方类库,在类库里面很可能会返回一个这样的列表,

但是他未必会返给你一个ArrayList,没准是人家自己写的一个实现类都说不准,那么我们面向接口编程,

不需要了解是什么实现类,我们都把它们当List接收过来就好了,我们就当成List来用。提高程序的透明性,

让底层的实现对上层使用者封装。

也就是说,因为List是接口。代码依赖于抽象的好处是,代码可以方便替换。例如,代码List list = new ArrayList();下面通过list来操作集合。代码编写后发现集合使用的不准确,应该使用LinkedList,那么只要修改一行代码List list = new LinkedList();就可以,这行以后的代码不需要修改,因为List接口保证了调用的都是接口中的方法,而ArrayList与LinkedList都实现了List接口。而如果当时用ArrayList list = new ArrayList()这种形式的话,那么list访问到的就可能是ArrayList里独有的方法而非List接口中的方法。这样替换成LinkedList的时候就有可能需要修改很多的代码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的List函数是一个接口,用于表示有序集合或序列。List接口的实现类有ArrayList、LinkedList和Vector。其中,ArrayList是可变数组,LinkedList是链接列表,Vector是线程安全的可变数组。 List接口提供了一些常用的函数,比如add(E e)用于将指定的元素追加到列表的末尾,size()用于返回列表中的元素数,get(int index)用于返回指定位置的元素。另外,List接口还提供了addAll(int index, Collection<? extends E> c)函数,用于将指定集合中的所有元素插入到列表的指定位置。 下面是一个使用ArrayList的示例代码: ```java import java.util.ArrayList; public class ListTest { public static void main(String\[\] args) { ArrayList<Integer> list = new ArrayList<>(); list.add(10); list.add(20); list.add(30); // 遍历列表的元素 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } } ``` 这段代码创建了一个ArrayList对象,然后使用add()函数将元素添加到列表中,最后使用get()函数遍历列表的元素并打印出来。 #### 引用[.reference_title] - *1* *2* [JAVA——34.集合函数-List](https://blog.csdn.net/zhaiyujia15195383763/article/details/81089397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [JavaList接口学习笔记(常用函数)](https://blog.csdn.net/weixin_44267007/article/details/120365531)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值