首页 > 其他分享 >List 接口及其常用方法

List 接口及其常用方法

时间:2023-06-11 20:34:32浏览次数:28  
标签:常用 List 元素 list System 接口 println out

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,元素,list,System,接口,println,out
From: https://www.cnblogs.com/echo97/p/17473520.html

相关文章

  • gdb常用命令
    1.gdb[GDB调试教程:1小时玩转Linuxgdb命令]sudodnfdebuginfo-installglibc-2.32-2.fc33.x86_64编译时,gcc-gtest.c-otest,因为在调试二进制文件的时候,我们需要在二进制文件中加入调试信息,而调试信息是怎么添加的呢?它是在编译的时候,通过-g选项添加的,即类似于gcc-gtest......
  • Docker CLI docker container exec 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • Docker CLI docker export 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • markdown常用
    目录生成目录(基于标题)标题代码公式链接删除线区块表格转义字符插入生成目录(基于标题)[toc]标题#一级标题##二级标题###三级标题代码```code``e.g.code`公式$文本内数学表达式$$数学公式链接[链接名称](链接地址)或者<链接地址>删除线~~删除~~​......
  • 9.16 泛型接口
    对于泛型接口的子类而言,有2种实现方式demo1在子类中继续进行泛型定义interfaceIMessage<T>{publicStringecho(Tt);}classMessageImpl<S>implementsIMessage<S>{publicStringecho(St){return"[echo]"+t;}}publicclassHello......
  • 总结常用的几种 api 方式调用saltstack
    saltstack本身是用python写的,用python调用saltstack相对来说比较简单. 我这里采用的是第一种方法,但不同的是用tornado自封装了一层api 1.PythonclientAPIhttp://docs.saltstack.com/en/latest/ref/clients/#salt.wheel.WheelClient.cmd优点:最简单,只要机器安装了saltstack,......
  • Java8新特性Stream之list转map及问题解决
    List集合转Map,用到的是Stream中Collectors的toMap方法:Collectors.toMap具体用法实例如下://声明一个List集合Listlist=newArrayList();list.add(newPerson("1001","小A"));list.add(newPerson("1002","小B"));list.add(......
  • Maven常用命令及其作用
    一、Maven常用命令及其作用1、mavenclean:对项目进行清理,删除target目录下编译的内容2、mavencompile:编译项目源代码3、maventest:对项目进行运行测试4、mavenpacket:打包文件并存放到项目的target目录下,打包好的文件通常都是编译后的class文件5、maveninstall:在本地......
  • Vue 中通过事件总线方式组件间传递数据及调用 Vue脚手架中的axios数据调用方式获取git
    1:看界面效果2:代码结构3:代码内容3.1:引入第三方css样式表:bootstrap.css/*!*Bootstrapv3.3.5(http://getbootstrap.com)*Copyright2011-2015Twitter,Inc.*LicensedunderMIT(https://github.com/twbs/bootstrap/blob/master/LICENSE)*//*!normalize.cssv3.0.3|......
  • nas使用docker部署alist​
    一、下载镜像xhofe/alist:latest二、创建容器第一行:文件/文件夹:此处填写在nas上事先创建好的目录位置装载路径:/opt/alist/data类型选读写启动容器,检查日志是否有报错项。如没有报错,容器应该为运行中的状态。三、打开alist页面点击快捷方式查看应用网址打开alist登录页面http://192......