【JAVA基础篇教学】第八篇:Java中List详解说明

简介: 【JAVA基础篇教学】第八篇:Java中List详解说明

博主打算从0-1讲解下java基础教学,今天教学第八篇:Java中List详解说明。


在 Java 编程中,List 接口是一个非常常用的集合接口,它代表了一个有序的集合,可以包含重复的元素。List 接口提供了一系列操作方法,可以方便地对列表进行增删改查等操作。本文将介绍 List 接口的基本概念以及如何在 Java 中使用 List 接口。

一、List 接口概述

List 接口是 Java Collections Framework 中的一部分,位于 java.util 包中。它是一个接口,定义了一系列操作有序集合的方法,可以允许包含重复元素。

List 接口的主要特点包括:

  • 有序性:List 中的元素按照它们插入的顺序进行存储,可以根据索引访问每个元素。
  • 允许重复元素:List 可以包含重复的元素,同一个元素可以出现多次。


二、List 接口的常见实现类

Java 中常见的 List 接口的实现类包括:

  • ArrayList:基于数组实现的动态数组,支持快速随机访问。
  • LinkedList:基于双向链表实现的列表,适合插入、删除操作频繁的场景。
  • Vector:线程安全的动态数组,已被 ArrayList 取代,不推荐使用。


在本文中,我们将主要介绍 ArrayList 的使用。

三、教学案例

1、创建List

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
        // 创建一个 ArrayList 对象
        List<String> myList = new ArrayList<>();
 
        // 添加元素到列表
        myList.add("Apple");
        myList.add("Banana");
        myList.add("Orange");
 
        System.out.println(myList);
    }
}

2、获取集合大小

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
        // 创建一个 ArrayList 对象
        List<String> myList = new ArrayList<>();
 
        // 添加元素到列表
        myList.add("Apple");
        myList.add("Banana");
        myList.add("Orange");
        System.out.println(myList);
 
        // 获取列表大小
        int size = myList.size();
        System.out.println("List size: " + size);
 
    }
}

3、访问集合元素

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
        // 创建一个 ArrayList 对象
        List<String> myList = new ArrayList<>();
 
        // 添加元素到列表
        myList.add("Apple");
        myList.add("Banana");
        myList.add("Orange");
        System.out.println(myList);
 
        // 获取列表大小
        int size = myList.size();
        System.out.println("List size: " + size);
 
        // 访问列表元素
        System.out.println("First element: " + myList.get(0));
        System.out.println("Last element: " + myList.get(size - 1));
 
       
       
    }
}

4、遍历列表并打印每个元素

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
        // 创建一个 ArrayList 对象
        List<String> myList = new ArrayList<>();
 
        // 添加元素到列表
        myList.add("Apple");
        myList.add("Banana");
        myList.add("Orange");
        System.out.println(myList);
 
        // 获取列表大小
        int size = myList.size();
        System.out.println("List size: " + size);
 
        // 访问列表元素
        System.out.println("First element: " + myList.get(0));
        System.out.println("Last element: " + myList.get(size - 1));
 
        // 遍历列表并打印每个元素
        System.out.println("All elements:");
        for (String item : myList) {
            System.out.println(item);
        }
 
    }
}

5、在指定位置插入元素

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
        // 创建一个 ArrayList 对象
        List<String> myList = new ArrayList<>();
 
        // 添加元素到列表
        myList.add("Apple");
        myList.add("Banana");
        myList.add("Orange");
        System.out.println(myList);
 
        // 获取列表大小
        int size = myList.size();
        System.out.println("List size: " + size);
 
        // 访问列表元素
        System.out.println("First element: " + myList.get(0));
        System.out.println("Last element: " + myList.get(size - 1));
 
        // 遍历列表并打印每个元素
        System.out.println("All elements:");
        for (String item : myList) {
            System.out.println(item);
        }
 
        // 在指定位置插入元素
        myList.add(1, "Grapes");
        System.out.println("After inserting Grapes at index 1:");
        System.out.println("新的集合:"+ myList);
 
        
    }
}

6、删除指定位置的元素

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
         // 创建一个 ArrayList 对象
        List<String> myList = new ArrayList<>();
 
        // 添加元素到列表
        myList.add("Apple");
        myList.add("Banana");
        myList.add("Orange");
 
        System.out.println(myList);
        // 获取列表大小
        int size = myList.size();
        System.out.println("List size: " + size);
        // 访问列表元素
        System.out.println("First element: " + myList.get(0));
        System.out.println("Last element: " + myList.get(size - 1));
 
        // 遍历列表并打印每个元素
        System.out.println("All elements:");
        for (String item : myList) {
            System.out.println(item);
        }
 
        // 在指定位置插入元素
        myList.add(1, "Grapes");
        System.out.println("After inserting Grapes at index 1:");
        System.out.println("新的集合:" + myList);
 
        // 删除指定位置的元素
        myList.remove(2);
        System.out.println("After removing element at index 2:");
        System.out.println("删除后集合:" + myList);
    }
}

7、检查列表中是否包含某个元素

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
         // 创建一个 ArrayList 对象
        List<String> myList = new ArrayList<>();
 
        // 添加元素到列表
        myList.add("Apple");
        myList.add("Banana");
        myList.add("Orange");
 
        System.out.println(myList);
        // 获取列表大小
        int size = myList.size();
        System.out.println("List size: " + size);
        // 访问列表元素
        System.out.println("First element: " + myList.get(0));
        System.out.println("Last element: " + myList.get(size - 1));
 
        // 遍历列表并打印每个元素
        System.out.println("All elements:");
        for (String item : myList) {
            System.out.println(item);
        }
 
        // 在指定位置插入元素
        myList.add(1, "Grapes");
        System.out.println("After inserting Grapes at index 1:");
        System.out.println("新的集合:" + myList);
 
        // 删除指定位置的元素
        myList.remove(2);
        System.out.println("After removing element at index 2:");
        System.out.println("删除后集合:" + myList);
 
        // 检查列表中是否包含某个元素
        boolean containsBanana = myList.contains("Banana");
        System.out.println("Does list contain Banana? " + containsBanana);
    }
}

8、清空列表

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
         // 创建一个 ArrayList 对象
        List<String> myList = new ArrayList<>();
 
        // 添加元素到列表
        myList.add("Apple");
        myList.add("Banana");
        myList.add("Orange");
 
        System.out.println(myList);
        // 获取列表大小
        int size = myList.size();
        System.out.println("List size: " + size);
        // 访问列表元素
        System.out.println("First element: " + myList.get(0));
        System.out.println("Last element: " + myList.get(size - 1));
 
        // 遍历列表并打印每个元素
        System.out.println("All elements:");
        for (String item : myList) {
            System.out.println(item);
        }
 
        // 在指定位置插入元素
        myList.add(1, "Grapes");
        System.out.println("After inserting Grapes at index 1:");
        System.out.println("新的集合:" + myList);
 
        // 删除指定位置的元素
        myList.remove(2);
        System.out.println("After removing element at index 2:");
        System.out.println("删除后集合:" + myList);
 
        // 检查列表中是否包含某个元素
        boolean containsBanana = myList.contains("Banana");
        System.out.println("Does list contain Banana? " + containsBanana);
 
        // 清空列表
        myList.clear();
        System.out.println("After clearing the list:");
        System.out.println("清空后集合:"+ myList);
    }
}

本文介绍了 Java 中 List 接口的基本概念以及使用示例。List 接口是 Java 中最常用的集合接口之一,能够方便地对有序集合进行操作。在实际开发中,我们经常会使用 List 接口及其实现类来处理各种数据集合。希望本文能够帮助您更好地理解和使用 List 接口。

相关文章
|
1月前
|
Java 开发者
重学Java基础篇—Java类加载顺序深度解析
本文全面解析Java类的生命周期与加载顺序,涵盖从加载到卸载的七个阶段,并深入探讨初始化阶段的执行规则。通过单类、继承体系的实例分析,明确静态与实例初始化的顺序。同时,列举六种触发初始化的场景及特殊场景处理(如接口初始化)。提供类加载完整流程图与记忆口诀,助于理解复杂初始化逻辑。此外,针对空指针异常等问题提出排查方案,并给出最佳实践建议,帮助开发者优化程序设计、定位BUG及理解框架机制。最后扩展讲解类加载器层次与双亲委派机制,为深入研究奠定基础。
65 0
|
1月前
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList&lt;&gt;()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
Java 中数组Array和列表List的转换
|
1月前
|
设计模式 缓存 Java
重学Java基础篇—Java对象创建的7种核心方式详解
本文全面解析了Java中对象的创建方式,涵盖基础到高级技术。包括`new关键字`直接实例化、反射机制动态创建、克隆与反序列化复用对象,以及工厂方法和建造者模式等设计模式的应用。同时探讨了Spring IOC容器等框架级创建方式,并对比各类方法的适用场景与优缺点。此外,还深入分析了动态代理、Unsafe类等扩展知识及注意事项。最后总结最佳实践,建议根据业务需求选择合适方式,在灵活性与性能间取得平衡。
89 3
|
1月前
|
安全 IDE Java
重学Java基础篇—Java泛型深度使用指南
本内容系统介绍了Java泛型的核心价值、用法及高级技巧。首先阐述了泛型在**类型安全**与**代码复用**中的平衡作用,解决强制类型转换错误等问题。接着详细讲解了泛型类定义、方法实现、类型参数约束(如边界限定和多重边界)、通配符应用(PECS原则)以及类型擦除的应对策略。此外,还展示了泛型在通用DAO接口、事件总线等实际场景的应用,并总结了命名规范、边界控制等最佳实践。最后探讨了扩展知识,如通过反射获取泛型参数类型。合理运用泛型可大幅提升代码健壮性和可维护性,建议结合IDE工具和单元测试优化使用。
30 1
|
1月前
|
安全 IDE Java
重学Java基础篇—Java Object类常用方法深度解析
Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
57 1
|
3月前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
73 1
|
5月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
6月前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
137 5
|
6月前
|
Java 程序员 编译器
Java|如何正确地在遍历 List 时删除元素
从源码分析如何正确地在遍历 List 时删除元素。为什么有的写法会导致异常,而另一些不会。
145 3
|
6月前
|
Java 程序员
Java|List.subList 踩坑小记
不应该仅凭印象和猜测,就开始使用一个方法,至少花一分钟认真读完它的官方注释文档。
84 1
下一篇
oss创建bucket