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实现类的常用方法,需要充分掌握,以便于在日常开发中更加高效地进行编写。

阅读剩余 75%

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

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

相关文章

  • Java使用ObjectMapper的简单示例

    首先,我们需要了解一下ObjectMapper这个类,它是Jackson库中最常用的类之一,它允许Java对象与JSON对象之间的序列化和反序列化。该类提供了一系列方法,可以将Java对象转换为JSON格式,也可以将JSON格式的数据转换为Java对象。 安装Jackson依赖 如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: <de…

    Java 2023年5月26日
    00
  • SpringBoot中的Aop用法示例详解

    Spring Boot 中的 AOP 用法示例详解 什么是 AOP? AOP(Aspect Oriented Programming)即面向切面编程,是一种常见的编程范式。AOP 可以将一些常用的横切逻辑(比如日志、安全检查等)模块化,使得代码更具可读性、可维护性、可重用性。 Spring Boot 中的 AOP Spring Boot 框架提供了很好的 A…

    Java 2023年5月19日
    00
  • 关于@Query注解的用法(Spring Data JPA)

    当我们使用 Spring Data JPA 进行数据库操作时,经常需要根据特定的条件查询数据,@Query 注解可以用来定义自定义查询语句,让我们可以像原生 SQL 语句一样写出灵活的查询语句。下面是 @Query 注解的详细介绍和使用方法。 什么是 @Query 注解 @Query 是 Spring Data JPA 提供的一种查询注解,用来定义自定义查询…

    Java 2023年5月20日
    00
  • 一个JSP页面导致的tomcat内存溢出的解决方法

    下面是详细的攻略。 问题描述 当网站使用JSP技术时,可能会出现一个JSP页面导致Tomcat内存溢出的情况。 解决方法 1. 分析JSP页面的代码 首先,我们需要分析这个JSP页面的代码,看看有没有一些可能导致内存溢出的地方。一般来说,会出现内存溢出的原因主要有两个: 程序中有不合理的循环或递归调用,导致内存无法被回收; 程序中使用了大量的缓存或者需要大量…

    Java 2023年6月15日
    00
  • JSP页面中如何用select标签实现级联

    要在JSP页面中使用select标签实现级联,可以遵循以下步骤: 确定级联关系 在使用select标签实现级联前,需要确定级联关系,即第一个下拉框的选择决定了第二个下拉框的选项。例如,第一个下拉框选择区域,第二个下拉框选择该区域的城市。 创建第一个下拉框 使用HTML的select标签创建第一个下拉框,并给每个选项赋值。例如,在第一个下拉框里,我们可以创建几…

    Java 2023年6月15日
    00
  • 手写redis@Cacheable注解 支持过期时间设置方式

    这里是“手写redis@Cacheable注解 支持过期时间设置方式”的完整攻略。 1. 概述 Redis缓存提供了较高的性能,而Spring提供了注解方式方便我们使用Redis缓存。Spring的@Cacheable注解可以让我们轻松地实现缓存技术,但Spring的默认缓存过期时间是无限期的,这就意味着我们无法控制每个缓存项的过期时间。因此,我们需要手写R…

    Java 2023年5月20日
    00
  • Spring data elasticsearch使用方法详解

    Spring Data Elasticsearch使用方法详解 什么是Spring Data Elasticsearch Spring Data Elasticsearch是基于Spring Data的一个Elasticsearch组件,它提供了一系列的API以便于我们操作Elasticsearch。Spring Data Elasticsearch使得Sp…

    Java 2023年5月20日
    00
  • Java SpringBoot自动配置原理详情

    Java SpringBoot是目前非常流行的开源框架之一,它通过自动配置的方式简化了开发者的工作量,并提高了开发效率。本文将详细讲解Java SpringBoot自动配置的原理以及实际应用,让读者对SpringBoot有更深刻的理解。 SpringBoot自动配置原理 SpringBoot自动配置的核心在于@EnableAutoConfiguration注…

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