Java学习笔记:ArrayList集合


**2024/3/23**

参考资料:

黑马程序员:ArrayList集合

Java集合框架最全详解(看这篇就够了)

为什么要有集合:解决数组自动扩容的问题

20240323093217

Java、python数据类型对比

20240323093347

20240323095611

Java支持的数据类型主要分为两大类:

  • 内置数据类型:也称为基本数据类型;
  • 引用数据类型:除了基本数据类型外,Java还支持引用数据类型,包括类、数组和接口等。

Python支持多种数据类型,主要包括以下几种:

  • 数字(Number):用于表示数值,包括整数、浮点数和复数。
  • 字符串(String):用于表示文本信息,由字符序列组成。
  • 布尔型(bool):用于逻辑判断,只有两个值True和False。
  • 列表(List):一种有序且可变的集合,可以存储不同类型的元素。
  • 元组(Tuple):一种有序但不可变的集合,一旦创建,元素不能更改。
  • 集合(Set):一种无序且不包含重复元素的集合,适合进行数学上的集合操作。
  • 字典(Dictionary):一种映射类型,由键值对组成,键必须是唯一的。

在Java中常见的数据类型实现方式:

  1. 整数(Integer):Java中的基本整数类型是int,可以表示32位有符号整数。此外,还有long类型可以表示64位有符号整数。
  1. 浮点数(Floating-point numbers):Java中的浮点数类型是floatdoublefloat类型占用32位,而double类型占用64位。
  1. 布尔型(Boolean):Java中的布尔类型是boolean,只有两个值:truefalse
  1. 字符串(String):Java中的字符串类型是String,用于表示文本信息。可以使用双引号或单引号来创建字符串。
  1. 数组(Array)Java中的数组是一种固定长度的数据结构,可以存储相同类型的元素。可以通过声明数组类型和指定大小来创建数组。
  1. 集合(Collection)Java中的集合类提供了一种灵活的方式来存储和管理一组对象。常用的集合类包括ListSetMap等。
  1. 枚举(Enumeration):Java中的枚举类型用于定义一组固定的常量值。通过使用关键字enum来声明枚举类型。
  1. 自定义类(Custom classes):Java支持用户定义自己的类,用于封装数据和行为。通过使用关键字class来声明一个类。

需要注意的是,Java是一种静态类型语言,每个变量都需要显式地声明其类型。

Java通过使用集合框架来解决一组数据的存储和管理

【python通过其多样的数据类型来解决一组数据的存储和管理】

Java集合框架是用于存储和操作对象组的一系列接口、类和算法的集合

Java集合框架提供了多层次的接口和实现,以支持不同类型的数据结构。

Java集合框架的核心接口及其常见实现:

  1. List:代表一个有序的集合,可以包含重复的元素。常见的实现包括ArrayList和LinkedList。ArrayList提供了快速的随机访问能力,而LinkedList则优化了元素插入和删除操作。
  2. Set:代表一个不允许重复元素的集合。常用实现有HashSet、LinkedHashSet和TreeSet。HashSet基于哈希表实现,提供快速的查找和插入;LinkedHashSet则维护了元素的插入顺序;TreeSet则基于红黑树,可以对集合进行排序。
  3. Queue:代表一个先进先出(FIFO)的队列。Java中的Queue接口通常由LinkedList实现,也可以使用PriorityQueue来维护优先级顺序。
  4. Map:代表一个键值对映射。HashMap是一种常用的实现,它提供了快速的存取操作;TreeMap则基于红黑树实现,能够对键进行排序;LinkedHashMap保持了插入顺序或者访问顺序。

Arrays.asList()可以将数组转换为列表。Java集合框架是一个强大且灵活的工具,它允许开发者根据具体需求选择合适的数据结构。

Java集合大致也可分成List、Set、Queue、Map四种接口体系

img

image-20240323102144680

Java集合和数组存储数据类型的特点

20240323092046

20240323093320

ArrayList成员方法

20240323093756

20240323093638

20240323094015

20240323094311

演示代码

package study.heima;
import java.util.ArrayList;

/*
 * Java数组 --- python 元组;数据不可改变,不能扩容;
 * JavaArrayList集合 --- python列表;数据列表有序且支持重复元素;提供增删改查的方法;
 * Java集合框架解决一组数据的存储管理方案;
 */
public class ArrayListDemo1 {
    public static void main(String[] args) {
        
        // 创建ArrayList集合对象
    /*错误演示:基本数据类型必须使用包装类;
    ArrayList<int> list = new ArrayList<int>;
     */
        
        ArrayList<String> list = new ArrayList<String>();
        System.out.println(list);   // 默认值:[]

        // 添加元素
        ArrayList<String> list_1 = new ArrayList<String>();
        list_1.add("zzz");
        list_1.add("");
        list_1.add("zzz");  // 验证是否允许重复的元素
        list_1.add("zzz");  
        list_1.add("ddd");
        list_1.add("ddd");
        list_1.add("ddd");
        list_1.add("ddd");
        System.out.println(list_1);

        // 删除元素
        list_1.remove("zzz");
        list_1.remove("zzz");
        System.out.println(list_1);     // 按照遍历顺序来删除;成功删除返回True;否则false

        // 修改元素
        list_1.set(2, "王大锤");       // 插入索引下标位置
        System.out.println(list_1);

        // 查询元素
        String element = list_1.get(2);
        System.out.println(element);

        // 遍历集合 list_1.fori 回车
        for (int i = 0; i < list_1.size(); i++) {
            System.out.print(list_1.get(i) + " ");
        }
    }
}

如果对您有帮助 欢迎 点赞+收藏!

posted on 2024-03-23 11:28  Li_博士  阅读(14)  评论(0编辑  收藏  举报

导航