【Java 基础篇】Java List 详解

这篇具有很好参考价值的文章主要介绍了【Java 基础篇】Java List 详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导言

在Java的集合框架中,List接口是一个有序、可重复的集合,它扩展了Collection接口,并提供了一系列操作和方法来处理元素列表。本文将详细介绍Java中的List接口及其常见实现类,包括ArrayListLinkedListVector,并提供一些示例代码。

一、List 概述

List接口继承自Collection接口,并添加了一些针对有序列表的操作。它允许元素的重复,并提供了根据索引访问、添加、删除和替换元素的方法。在Java中,List接口有几个常见的实现类,每个实现类都具有不同的性能和用途。

  • ArrayList:基于动态数组实现,支持随机访问和快速遍历,适用于读取和修改操作较多的场景。
  • LinkedList:基于双向链表实现,支持高效的插入和删除操作,适用于频繁的插入和删除操作。
  • Vector:与ArrayList类似,但是线程安全,适用于多线程环境。

二、ArrayList

ArrayListList接口的一个常见实现类,它基于动态数组实现,可以根据需要自动扩展和收缩数组的大小。以下是一些常用的ArrayList方法:

  • add(E element): 在列表的末尾添加元素。
  • get(int index): 获取指定索引位置的元素。
  • set(int index, E element): 替换指定索引位置的元素。
  • remove(int index): 移除指定索引位置的元素。
  • size(): 返回列表的大小。

以下是一个使用ArrayList的示例代码:

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");

        System.out.println("Fruits: " + fruits);

        fruits.remove(1);
        System.out.println("Fruits after removal: " + fruits);

        String fruit = fruits.get(0);
        System.out.println("First fruit: " + fruit);
    }
}

在上述示例中,我们创建了一个ArrayList实例,并添加了一些水果。然后,我们从列表中移除了一个元素,并获取了列表中的第一个元素。最后,我们打印了列表的内容。

三、LinkedList

LinkedListList接口的另一个实现类,它基于双向链表实现。与ArrayList相比,LinkedList对于频繁的插入和删除操作更高效。以下是一些常用的LinkedList方法:

  • add(E element): 在列表的末尾添加元素。
  • get(int index): 获取指定索引位置的元素。
  • set(int index, E element): 替换指定索引位置的元素。
  • remove(int index): 移除指定索引位置的元素。
  • size(): 返回列表的大小。

以下是一个使用LinkedList的示例代码:

import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
    public static void main(String[] args) {
        List<String> names = new LinkedList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        System.out.println("Names: " + names);

        names.remove(1);
        System.out.println("Names after removal: " + names);

        String name = names.get(0);
        System.out.println("First name: " + name);
    }
}

在上述示例中,我们创建了一个LinkedList实例,并添加了一些姓名。然后,我们从列表中移除了一个元素,并获取了列表中的第一个姓名。最后,我们打印了列表的内容。

四、Vector

VectorList接口的另一个实现类,与ArrayList类似,但是它是线程安全的。Vector的操作方法与ArrayList相同,但是由于线程同步的额外开销,它的性能可能较低。以下是一些常用的Vector方法:

  • add(E element): 在列表的末尾添加元素。
  • get(int index): 获取指定索引位置的元素。
  • set(int index, E element): 替换指定索引位置的元素。
  • remove(int index): 移除指定索引位置的元素。
  • size(): 返回列表的大小。

以下是一个使用Vector的示例代码:

import java.util.Vector;
import java.util.List;

public class VectorExample {
    public static void main(String[] args) {
        List<String> colors = new Vector<>();
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");

        System.out.println("Colors: " + colors);

        colors.remove(1);
        System.out.println("Colors after removal: " + colors);

        String color = colors.get(0);
        System.out.println("First color: " + color);
    }
}

在上述示例中,我们创建了一个Vector实例,并添加了一些颜色。然后,我们从列表中移除了一个元素,并获取了列表中的第一个颜色。最后,我们打印了列表的内容。

总结

在本文中,我们详细介绍了Java中的List接口及其常见实现类:ArrayListLinkedListVector。通过了解它们的特点和用法,你可以根据实际需求选择适当的List实现类来操作和管理元素列表。

ArrayList适用于读取和修改操作较多的场景,LinkedList适用于频繁的插入和删除操作,而Vector适用于多线程环境。

希望本文对你理解和使用Java的List接口有所帮助!

参考资料:

  • The Java Tutorials - Collections
  • Java Collections Framework

附:示例代码

[ArrayListExample.java]

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");

        System.out.println("Fruits: " + fruits);

        fruits.remove(1);
        System.out.println("Fruits after removal: " + fruits);

        String fruit = fruits.get(0);
        System.out.println("First fruit: " + fruit);
    }
}

[LinkedListExample.java]

import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
    public static void main(String[] args) {
        List<String> names = new LinkedList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        System.out.println("Names: " + names);

        names.remove(1);
        System.out.println("Names after removal: " + names);

        String name = names.get(0);
        System.out.println("First name: " + name);
    }
}

[VectorExample.java]文章来源地址https://www.toymoban.com/news/detail-500632.html

import java.util.Vector;
import java.util.List;

public class VectorExample {
    public static void main(String[] args) {
        List<String> colors = new Vector<>();
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");

        System.out.println("Colors: " + colors);

        colors.remove(1);
        System.out.println("Colors after removal: " + colors);

        String color = colors.get(0);
        System.out.println("First color: " + color);
    }
}

到了这里,关于【Java 基础篇】Java List 详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第12章_集合框架(Collection接口,Iterator接口,List,Set,Map,Collections工具类)

    1.1 生活中的容器 1.2 数组的特点与弊端 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。 另一方面,使用数组存储对象方面具有 一些弊端 ,而Java 集合就像一种容器,可以 动态地 把多个对象的引用放入容器中。 数

    2024年01月25日
    浏览(45)
  • Java 一个数组集合List<People> 赋值给另一个数组集合List<NewPeople> ,两个数组集合属性部分一致。

    下面是一个Demo, 具体要根据自己的业务调整。

    2024年01月23日
    浏览(70)
  • Java-集合框架-List,Set,Map,队列

    Java集合框架是一组用于存储和操作数据的类和接口。它提供了不同类型的集合,如List,Set,Map和队列,以满足不同的需求。 List:有序的集合,允许重复的元素。 Set:无序的集合,不允许重复的元素。 Map:键值对的集合,每个元素都包含一个键和一个值。 队列:先进先出(

    2024年02月11日
    浏览(49)
  • 【JAVA语言-第15话】集合框架(二)——List、ArrayList、LinkedList、Vector集合

    目录 List集合 1.1 概述 1.2 特点 1.3 常用方法 1.4 ArrayList集合 1.4.1 概述  1.4.2 练习 1.5 LinkedList集合  1.5.1 概述 1.5.2 特点 1.5.3 常用方法 1.5.4 练习 1.6 Vector类 1.6.1 概述 1.6.2 练习 1.7 List实现类的异同点         java.util.List: List是一个接口,它继承自Collection接口。 常用的实现

    2024年01月25日
    浏览(57)
  • java基础 - 实现一个简单的Http接口功能自动化测试框架(HttpClient + TestNG)

    已知现在已经用Spring boot框架搭建了一个简单的web服务,并且有现成的Controller来处理http请求,以之前搭建的图书管理服务为例,BookController的源码如下: 在搭建一个Http接口功能自动化测试框架之前,我们需要思考几个问题: 1、http请求的发送,使用什么实现? 2、接口返回的

    2024年02月05日
    浏览(55)
  • Java集合框架Set接口

    目录 Set接口概念 Set接口常用的方法 示例 Java集合框架中的Set接口是一种不允许包含重复元素的集合。Set接口继承自Collection接口,因此它具有Collection接口定义的所有方法。同时,Set接口还具有自己的特殊方法,例如:添加元素、删除元素、判断元素是否存在等。 Set接口的实

    2023年04月18日
    浏览(49)
  • Java基础_集合类_List

    类图: (1)AbstractCollection Collection接口的骨架式实现类,最小化实现Collection接口的代价。 (2)AbstractList List接口的骨架式实现类,最小化实现List接口的代价。**“随机访问”**数据存储。 提供了iterator()、listIterator()方法的实现。 重要属性 : protected transient int modCount;【 修改

    2024年04月28日
    浏览(45)
  • 【Java基础】Java中List集合的常用方法

    在Java编程中,List集合是最常用的一种数据结构之一。它具有动态扩容、元素添加、删除和查询等基础操作,可以存储各种类型的对象,并且支持泛型。在本文中,我将介绍Java List集合的常用方法,并通过实例演示这些方法的使用。 一、List集合的创建与初始化 在使用List集合

    2024年02月16日
    浏览(38)
  • 【JAVA】集合与背后的逻辑框架,包装类,List,Map,Set,静态内部类

    ❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: Collection 接口,在 Java 当中,Collection 也是重要的数据结构。 在创建 Collection 的时候,要 通过 new 来使用。但是查看 Collection 源码的时候, 发现 Collecting 是一个接口

    2024年02月07日
    浏览(41)
  • java基础 -02java集合之 List,AbstractList,ArrayList介绍

    在正式List之前,我们先了解我们补充上篇Collection接口的拓展实现,也就是说当我我们需要实现一个不可修改的Collection的时候,我们只需要拓展某个类,也就是AbstractCollection这个类,他是Collection接口的骨干实现,并以最大限度的实现了减少此接口所需要的工作; 如上两图进行

    2024年01月20日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包