List接口扩展了Collection并声明存储一系列元素的类集的特性。使用一个基于零的下标,元素可以通过它们在列表中的位置被插入和访问。

一个列表可以包含复制元素。除了由Collection定义的方法之外,List还定义了一些它自己的方法,这些方法总结在下表中。再次注意当类集不能被修改时,其中的几种方法引发UnsupportedOperation Exception异常。当一个对象与另一个不兼容,例如当企图将一个不兼容的对象加入一个类集中时,将产生ClassCastException异常。

由 List 定义的方法

方法 描述
void add(int index, Object obj) 将obj插入调用列表,插入位置的下标由index传递。任何已存在的,在插入点以及插入点之后的元素将前移。因此,没有元素被覆盖
boolean addAll(int index, Collection c) 将c中的所有元素插入到调用列表中,插入点的下标由index传递。在插入点以及插入点之后的元素将前移。因此,没有元素被覆盖。如果调用列表改变了,则返回true;否则返回false
Object get(int index) 返回存储在调用类集内指定下标处的对象
int indexOf(Object obj) 返回调用列表中obj的第一个实例的下标。如果obj不是列表中的元素,则返回-1
int lastIndexOf(Object obj) 返回调用列表中obj的最后一个实例的下标。如果obj不是列表中的元素,则返回-1
ListIterator listIterator( ) 返回调用列表开始的迭代程序
ListIterator listIterator(int index) 返回调用列表在指定下标处开始的迭代程序
Object remove(int index) 删除调用列表中index位置的元素并返回删除的元素。删除后,列表被压缩。也就是说,被删除元素后面的元素的下标减一
Object set(int index, Object obj) 用obj对调用列表内由index指定的位置进行赋值
List subList(int start, int end) 返回一个列表,该列表包括了调用列表中从start到end–1的元素。返回列表中的元素也被调用对象引用

对于由Collection定义的add( )和addAll( )方法,List增加了方法add(int, Object)和addAll(int, Collection)。这些方法在指定的下标处插入元素。由Collection定义的add(Object)和addAll(Collection)的语义也被List改变了,以便它们在列表的尾部增加元素。

为了获得在指定位置存储的对象,可以用对象的下标调用get( )方法。为了给类表中的一个元素赋值,可以调用set( )方法,指定被改变的对象的下标。调用indexOf( )或lastIndexOf( )可以得到一个对象的下标。

通过调用subList( )方法,可以获得列表的一个指定了开始下标和结束下标的子列表。
正如你能想象到的,subList( )方法使得列表处理十分方便。

Java基础:什么是List接口,如何去运用?相关推荐

  1. 初学Java基础学习——抽象类和接口的区别

    初学Java基础学习--抽象类和接口的区别 一.关键字 1)抽象类的关键字 abstract class A{//定义一个抽象类: } class Test extends A{//子类使用exten ...

  2. 3、java基础:抽象类与接口的区别

    抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样 ...

  3. java基础之抽象类和接口

    一.抽象: **抽象类(abstract class):**使用了abstract关键字所修饰的类叫做抽象类.抽象类无法实例化,也就是说,不能new出来一个抽象类的对象(实例). **抽象方法(abs ...

  4. Java基础总结篇---Map接口

    Map 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值.除此之外你得明确的是Map是一个接口你得使用实现Map的类来实例化.其次是Map中数据存储格式是K-V键值对方法存储. ...

  5. Java基础_面向对象之接口

    一.接口的概念: 接口是功能的集合,其是一个比抽象类还抽象的类,也可以把它看作是一种数据类型. 接口只是描述其具备的方法,但是并未具体实现,具体的实现是由接口的实现类去完成. 二.接口的定义: 接口的 ...

  6. 每日学习-Java基础(十)接口和继承10(内部类)

    一.内部类 内部类 // 内部类有四种类型 // 1-非静态内部类 // 2-静态内部类 // 3-匿名类 // 4-本地类 1.非静态内部类 package ia10_innerClass;publ ...

  7. 黑马程序员——java基础之抽象与接口

    --- android培训.java培训.期待与您交流! ---- "动物" abstract:抽象.可以用来修饰类.修饰类之后这个类就是"抽象类" 修饰类之后 ...

  8. Java基础笔记:Day_10 接口、匿名内部类

    一.接口 定义类语法: [修饰符] class [类名] {} 定义接口语法:[修饰符] interface [接口名] {} 在这里我们还没有考虑接口的父接口! 接口命名问题:习惯以able结尾以表 ...

  9. java基础_static关键字,接口,内部类,匿名内部类

    关键字static 当我们编写一个类时,其实就是在描述其对象的属性和行为,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用.我们有时候希望无论是否产生了对象或 ...

  10. Java基础(10)接口、方法的参数类型以及返回值类型、权限修饰符

    1.接口 1. 接口的由来:为了体现事物功能的扩展性,Java通过接口来定义这些额外的扩展功能.但是并不给出具体实现,需要类来重写 2. 接口的特点 (1)定义接口:interface 定义格式:in ...

最新文章

  1. 求字符串全排列 python实现
  2. java dataset flatmap_Flink 系例 之 FlatMap
  3. 数据库---mysql的索引和引擎
  4. Android开发笔记(五十二)通知推送Notification
  5. lcmgcd因数分解
  6. Maya vray XYZ皮肤贴图材质节点连接
  7. MDIO总线简单介绍
  8. Spring框架学习
  9. 如何给Word中的图片添加题注
  10. C盘爆满?简单几招教你释放、清理C盘几十G空间,最有效的C盘清理方法
  11. 学习Matlab的第一个程序——用二分法求根
  12. 拉普拉斯方程和泊松方程的MATLAB可视化
  13. 数据分析和数据挖掘的概念和理念
  14. 同时买票是怎么实现的_候补购票和抢票有什么不同 候补购票和抢票可以同时进行吗...
  15. 还在为图片转Excel而烦恼?6种转换方法让你3秒实现转换
  16. 法规标准-ISO 22839标准解读(2013版)
  17. 117年的老商场也直播卖货了:活下来,再谈创造纪录!
  18. BR系列罗氏电流线圈变送器——安科瑞崔远航
  19. php分32位和64位吗,cpu32位和64位之间有什么区别?
  20. 问题 1431: [蓝桥杯][2014年第五届真题]分糖果 ——思维+模拟

热门文章

  1. XILINX-DDR3IP核的使用
  2. 047 Permutations II 有重复数字的全排列
  3. ODOO从哪里开始??OpenERP的第一根线头儿
  4. XAMPP 使用教程
  5. JavaScript模拟实现“实例成员”和“静态成员”
  6. Object.defineProperty 接口浏览器实现的bug.和疑惑
  7. leetcode字符串练习--整数反转
  8. keras简介(一)
  9. (2)Mac安装Parallels无法上网
  10. OpenCV图像处理(13)——指定区域截取和指定区域复制