java中List集合及其实现类的方法详解

Java中List集合及其实现类的方法详解

什么是List集合?

List集合是Java中最常用的集合之一,它可以存储有序、可重复的数据。

List实现类

Java中常见的List实现类有3种:

  • ArrayList
  • LinkedList
  • Vector

其中,Vector常用于多线程并发访问的场景中,由于其性能较慢,因此本文不再赘述。下面详细讲解ArrayList和LinkedList的方法及其区别。

ArrayList

常用方法

添加元素

  • add(E e)
  • add(int index, E element)
  • addAll(Collection<? extends E> c)
  • addAll(int index, Collection<? extends E> c)

删除元素

  • remove(int index)
  • remove(Object o)
  • removeIf(Predicate<? super E> filter)
  • removeAll(Collection<?> c)

修改元素

  • set(int index, E element)

获取元素

  • get(int index)
  • subList(int fromIndex, int toIndex)

其他方法

  • clear()
  • size()
  • isEmpty()
  • toArray()
  • contains(Object o)
  • indexOf(Object o)
  • lastIndexOf(Object o)

示例说明

添加元素

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add(1, "orange");
// list: ["apple", "orange", "banana"]

上述代码中,先新建一个空的ArrayList,然后依次添加"apple"和"banana"两个元素。接着,使用add(int index, E element)方法将"orange"插入到索引为1的位置,也就是原来的"banana"前面。最终得到的list为["apple", "orange", "banana"]。

删除元素

List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
list.remove(1);
// list: [1, 3, 4, 5]
list.removeIf(num -> num % 2 == 0);
// list: [1, 3, 5]

上述代码中,先使用Arrays.asList()方法快速创建一个包含5个元素的ArrayList,然后使用remove(int index)方法删除索引为1的元素2。接着使用removeIf(Predicate<? super E> filter)方法,传入一个Lambda表达式作为参数,对于集合中的每个元素进行判断,判断条件为num % 2 == 0,即判断元素是否为偶数。根据该条件进行删除操作,得到的最终结果为[1, 3, 5]。

LinkedList

常用方法

LinkedList类与ArrayList类的方法类似,但有一些添加和删除头尾元素的方法。

添加元素

  • add(E e)
  • addFirst(E e)
  • addLast(E e)
  • add(int index, E element)
  • addAll(Collection<? extends E> c)
  • addAll(int index, Collection<? extends E> c)

删除元素

  • remove(int index)
  • remove(Object o)
  • removeFirst()
  • removeLast()
  • removeFirstOccurrence(Object o)
  • removeLastOccurrence(Object o)
  • removeIf(Predicate<? super E> filter)
  • removeAll(Collection<?> c)

修改元素

  • set(int index, E element)

获取元素

  • get(int index)
  • getFirst()
  • getLast()
  • subList(int fromIndex, int toIndex)

其他方法

  • clear()
  • size()
  • isEmpty()
  • toArray()
  • contains(Object o)
  • indexOf(Object o)
  • lastIndexOf(Object o)

示例说明

添加元素

LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.addFirst("orange");
// list: ["orange", "apple", "banana"]
list.addLast("pear");
// list: ["orange", "apple", "banana", "pear"]

上述代码中,先新建一个空的LinkedList,然后依次添加"apple"和"banana"两个元素。接着,使用addFirst(E e)方法在链表头部插入"orange"元素。下一行代码使用addLast(E e)方法在链表尾部插入"pear"元素。最终得到的list为["orange", "apple", "banana", "pear"]。

删除元素

LinkedList<Integer> list = new LinkedList<>(Arrays.asList(1, 2, 3, 4, 5));
list.removeFirst();
// list: [2, 3, 4, 5]
list.removeLast();
// list: [2, 3, 4]

上述代码中,先使用Arrays.asList()方法快速创建一个包含5个元素的LinkedList,然后使用removeFirst()方法删除链表头部的元素1。接着使用removeLast()方法删除链表尾部的元素5。最终得到的list为[2, 3, 4]。

总结

List集合是Java中最常用的集合之一,支持有序、可重复的元素。Java中常见的List实现类有ArrayList和LinkedList,分别具有各自的优缺点,在不同的场景下可根据需要进行选择。对于两种List实现类的常用方法,需要充分掌握,以便于在日常开发中更加高效地进行编写。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中List集合及其实现类的方法详解 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • jsp response.sendRedirect()用法详解

    JSP response.sendRedirect()用法详解 在JSP开发中,经常需要进行页面的跳转。其中,最常用的跳转方法是 response.sendRedirect()。本文将对 response.sendRedirect() 方法进行详细讲解,包括使用场景、语法、注意事项以及示例说明等内容。 一、使用场景 response.sendRedirect…

    Java 2023年6月15日
    00
  • Java中Stream流去除List重复元素的方法

    首先要说明一下,Java中的Stream流是Java8中新增的一种函数式操作流程,主要用来对集合进行函数式操作,它可以对集合进行一些链式操作,比如筛选、分组、排序、去重等。 List去重,在Java8中,可以借助Stream流,具体步骤如下: 使用Stream.builder()来构造一个Stream.Builder对象; 通过builder对象调用add方…

    Java 2023年5月31日
    00
  • Spring MVC中自定义拦截器的实例讲解

    以下是关于“Spring MVC中自定义拦截器的实例讲解”的完整攻略,其中包含两个示例。 Spring MVC中自定义拦截器的实例讲解 拦截器是Spring MVC中的一个重要组件,它可以在请求到达Controller之前或之后执行一些操作。在本文中,我们将讲解如何在Spring MVC中自定义拦截器。 步骤一:创建Maven项目 打开IntJ IDEA,选…

    Java 2023年5月17日
    00
  • List集合多线程并发条件下不安全如何解决

    List集合在多线程并发条件下存在线程安全问题,主要是由于多个线程在同时对List进行增删改操作,会产生竞争条件。在此情况下,如果不进行处理,会导致List集合数据不一致或者抛出ConcurrentModificationException异常等问题。下面是解决List集合多线程并发不安全的完整攻略: 方案1:使用线程安全的List集合 Java提供了多个线…

    Java 2023年5月26日
    00
  • springmvc学习笔记-返回json的日期格式问题的解决方法

    下面是“springmvc学习笔记-返回json的日期格式问题的解决方法”的完整攻略: Spring MVC 返回JSON的日期格式问题的解决方法 Spring MVC框架中,我们通常会使用JSON作为数据返回格式,但是在返回JSON数据的时候,日期格式往往会出现一些问题,本文将详细介绍如何解决Spring MVC返回JSON的日期格式问题。 问题描述 在S…

    Java 2023年5月26日
    00
  • 基于java中的PO VO DAO BO POJO(详解)

    “基于java中的PO VO DAO BO POJO(详解)” 这个话题是讲解Java中常用于开发的一些设计模式和编程技术。在下面的回答中,我会逐一介绍PO、VO、DAO、BO、POJO的概念和用法,并且会提供两个示例来展示这些技术的实际应用。 PO PO(Persistent Object)是指持久化对象,它对应数据库中的一张表中的一条记录。PO中的每个字…

    Java 2023年5月20日
    00
  • javascript修改IMG标签的src问题

    如果需要修改HTML文档中的标签的src属性,可以使用JavaScript来实现该功能。以下是几种实现该功能的方法: 方法一:使用getElementById() // 获取img元素 var img = document.getElementById("example-img"); // 修改src属性 img.src = "…

    Java 2023年6月15日
    00
  • SpringBoot深入分析webmvc和webflux的区别

    下面是关于“SpringBoot深入分析webmvc和webflux的区别”的完整攻略,包含两个示例说明。 SpringBoot深入分析webmvc和webflux的区别 SpringBoot是一个流行的Java开发框架,它提供了许多功能和特性来简化Java应用程序的开发。其中,SpringBoot的Web框架有两种选择:webmvc和webflux。本文将…

    Java 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部