List 接口基本介绍

List接口是Collection接口的子接口,其主要特点如下:

  1. List中元素有序,是按照元素的插入顺序进行排序的。每个元素都有一个与之关联的整数型索引(索引从 0 开始),可以根据索引来访问和操作元素,可以使用普通 for 循环遍历。
  2. List中可以包含重复的元素。
public class ListTest() {
public static void main(String[] args) {
// List 中元素有序、且可重复
List list = new ArrayList();
list.add("Jack");
list.add("Rose");
list.add("May");
list.add("Luck");
list.add("Jack");
System.out.println("list = " + list); // list = [Jack, Rose, May, Luck, Jack] // List 支持索引
System.out.println(list.get(2)); // May
}
}

List 接口常用方法

下面的代码以其实现类ArrayList演示List接口的常用方法。

public class ListMethod() {
public static void main(String[] args) {
List list = new ArrayList();
// 添加指定元素到列表末尾
list.add("任盈盈");
list.add("赵敏");
System.out.println("list = " + list); // list = [任盈盈, 赵敏] // void add(int index, E element)
// 在此列表的指定位置插入指定的元素。
// 将当前位于该位置的元素(如果有)以及后续的元素向右移动(索引加一)。
list.add(1, "周芷若");
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 赵敏] // boolean addAll(int index, Collection<? extends E> c)
// 将指定集合中的所有元素按指定位置插入到此列表中。
// 将当前位于该位置的元素(如果有)以及后续的元素向右移动(索引增加)。
// 新元素将按照指定集合迭代器返回它们的顺序出现在此列表中。
List list1 = new ArrayList();
list1.add("风清扬");
list1.add("任我行");
list.addAll(2, list1);
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 风清扬, 任我行, 赵敏] // E get(int index):返回此列表中指定位置的元素。
System.out.println(list.get(1)); // 周芷若 list.add("风清扬");
System.out.println("list = " + list); // list = [任盈盈, 周芷若, 风清扬, 任我行, 赵敏, 风清扬] // int indexOf(Object o)
// 返回此列表中指定元素第一次出现的索引,如果列表不包含该元素,则返回 -1。
System.out.println(list.indexOf("风清扬")); // 2
// int lastIndexOf(Object o)
// 返回此列表中指定元素最后一次出现的索引,如果列表不包含该元素,则返回 -1。
System.out.println(list.lastIndexOf("风清扬"));// 5 // E remove(int index):移除此列表中指定位置的元素。
// 将任何后续的元素向左移动(其索引减一)。返回从列表中移除的元素。
list.remove(0);
System.out.println("list = " + list); // list = [周芷若, 风清扬, 任我行, 赵敏, 风清扬] // boolean remove(Object o):从列表中移除指定元素的第一个匹配项(如果存在)。
// 如果列表不包含该元素,则列表保持不变。如果列表发生更改,则返回 true。
list.remove("风清扬");
System.out.println("list = " + list); // list = [周芷若, 任我行, 赵敏, 风清扬] //E set(int index, E element):用指定元素替换列表中指定位置的元素。
list.set(1, "张无忌");
System.out.println("list = " + list); // list = [周芷若, 张无忌, 赵敏, 风清扬] // List<E> subList(int fromIndex, int toIndex)
// 返回此列表中从 fromIndex(包括)到 toIndex(不包括)的子集合。
// 如果 fromIndex 和 toIndex 相等,则返回的列表为空。
List list2 = list.subList(1, 3);
System.out.println("list2 = " + list2); // list2 = [张无忌, 赵敏]
// 该方法消除了显式的范围操作的需求(这种操作通常用于数组)。
// 需要对列表的一部分进行的操作都可以通过传递子列表视图而不是把整个列表作为范围,
// 类似的习惯用法也可以用于 indexOf 和 lastIndexOf 方法。
// 例如,以下习惯用法从列表中移除了一系列元素:
System.out.println("list = " + list); // 输出:list = [周芷若, 张无忌, 赵敏, 风清扬]
list.subList(1, 3).clear();
System.out.println("list = " + list);// 输出:list = [周芷若, 风清扬]
}
}

List 接口遍历元素方式

List接口可以使用 Iterator(迭代器)、增强 for 循环和普通 for 循环三种方式来遍历元素,下面的代码以其实现类Vector演示List接口遍历元素的方式。

public class ThroughElements() {
public static void main(String[] args) {
List list = new Vector(); list.add("蛋挞");
list.add("芝士蛋糕");
list.add("提拉米苏"); System.out.println("---使用 Iterator---");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Object o = iterator.next();
System.out.println(o);
} System.out.println("---使用增强 for 循环---");
for (Object o : list) {
System.out.println(o);
} System.out.println("---使用普通 for 循环---");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}

List 接口及其常用方法的更多相关文章

  1. java中集合类中Collection接口中的Map接口的常用方法熟悉

    1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...

  2. java中集合类中Collection接口中的Set接口的常用方法熟悉

    1:Set集合由Set接口和Set接口的实现类组成,Set接口继承了Collection接口,因为包含Collection接口的所有方法. 2:由于Set接口中不允许存在重复值,因此可以使用Set集合 ...

  3. java中集合类中Collection接口中的List接口的常用方法熟悉

    1:集合类,在java语言中的java.util包提供了一些集合类,这些集合类又被称作容器. 2:区别集合类和数组.(1)数组的长度是固定的,集合的长度是可变的.(2)数组是用来存放基本数据类型的,集 ...

  4. 集合概述及Collection接口的常用方法

    java集合像是一种容器,可以动态的把多个对象的引用放到容器中 java的集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组 package com.aff.coll; imp ...

  5. JAVAEE_Servlet_14_HttpServletRequest接口以及常用方法(一)

    HttpServletRequest接口 * javax.servlet.http.HttpServletRequest 接口 * 继承关系 HttpServletRequest---继承---> ...

  6. Collection接口的常用方法

    [添加功能] boolean add(Object obj); //添加一个元素. boolean addAll(Collection c); //添加一个集合的元素(在后面追加). [删除功能] v ...

  7. Python 接口自动化常用方法封装

    #!/usr/bin/env python # -*- coding:utf-8 -*- # ************************************* # @Time : 2019/ ...

  8. Java集合框架的四个接口

    接口 [四个接口  collection  list  set  map 的区别] collection 存储不唯一的无序的数据 list 存储有序的不唯一的数据 set   存储无序的唯一的数据 m ...

  9. Java集合框架之四大接口、常用实现类

    Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的 ...

  10. java内部类、接口、集合框架、泛型、工具类、实现类

    .t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.内部类 1.成员内部类. (1)成员内部类的实例化: 外部类名.内部类 ...

随机推荐

  1. kubernetes核心实战(五)--- StatefulSets

    7.StatefulSets StatefulSet 是用来管理有状态应用的工作负载 API 对象. StatefulSet 用来管理 Deployment 和扩展一组 Pod,并且能为这些 Pod ...

  2. kubernetes核心实战(四)--- Deployments

    6.Deployments(重点) 一个 Deployment 控制器为 Pods和 ReplicaSets提供描述性的更新方式. 描述 Deployment 中的 desired state,并且 ...

  3. tcp,udp tcp三次握手四次挥手,基于套接字进行简单通信

    1.应用层: 应用层功能:规定应用程序的数据格式. 例:TCP协议可以为各种各样的程序传递数据,比如Email.WWW.FTP等等.那么,必须有不同协议规定电子邮件.网页.FTP数据的格式,这些应用程 ...

  4. Java设计模式 —— 组合模式

    11 组合模式 11.1 组合模式概述 Composite Pattern: 组合多个对象形成树形结构以表示具有部分-整体关系的层次结构.组合模式使得客户端可以统一处理单个对象和组合对象. 组合模式关 ...

  5. LeeCode链表问题(二)

    LeeCode 19: 删除链表的倒数第n个节点 题目描述: 给你一个链表,删除链表的倒数第 n 个节点,并返回链表的头节点. 标签:链表,双指针 时间复杂度:O(N) 建立模型: 定义虚拟头节点,使 ...

  6. js中宏任务和微任务

    宏任务包括:<script>整体代码.setTimeout.setInterval.setImmediate.Ajax.DOM事件微任务:process.nextTick.Mutation ...

  7. Win YAPI + Jenkins 实现接口自动化测试

    自动化测试 传统的接口自动化测试成本高,大量的项目没有使用自动化测试保证接口的质量,仅仅依靠手动测试,是非常不可靠和容易出错的. 为了解决这个问题,使用YAPI接口自动化测试功能,只需要配置每个接口的 ...

  8. LeetCode 周赛 344(2023/05/07)手写递归函数的固定套路

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 今天下午有力扣杯战队赛,不知道官方是不是故意调低早上周赛难度给选手们练练手. 往期周赛回 ...

  9. 工作中,Oracle常用函数

    目录 1.序言 2.Oracle函数分类 3.数值型函数 3.1 求绝对值函数 3.2 求余函数 3.3 判断数值正负函数 3.4 三角函数 3.5 返回以指定数值为准整数的函数 3.6 指数.对数函 ...

  10. 【已解决】使用代理后,登陆微软账号提示0x800190001

    今天晚上想要登录Onedrive同步文件时,发现怎么都登陆不上去,报出的错误代码是0x80190001,在网上搜索了各种方法,重置网络,重置Onedrive都没什么用,甚至把Onedrive重装了一遍 ...