Wrayの知识库 Wrayの知识库
首页
  • Java 基础
  • Java 集合
  • Java 并发
  • Java IO
  • JVM
  • Spring Framework
  • Spring Boot
  • Spring Cloud
  • Spring Security
  • MySQL
  • Redis
  • MacOS
  • Linux
  • Windows
  • 纸质书
  • 电子书
  • 学习课程
疑难杂症
GitHub (opens new window)
首页
  • Java 基础
  • Java 集合
  • Java 并发
  • Java IO
  • JVM
  • Spring Framework
  • Spring Boot
  • Spring Cloud
  • Spring Security
  • MySQL
  • Redis
  • MacOS
  • Linux
  • Windows
  • 纸质书
  • 电子书
  • 学习课程
疑难杂症
GitHub (opens new window)
  • Java基础

    • Java概述
    • Java语法
    • 面向对象编程
    • Java数组
      • 数组的特点
      • 数组的声明与初始化
      • 多维数组
      • 数组的遍历
      • 数组的常见操作
      • 数组的优缺点
      • 应用场景
    • String字符串
    • 异常处理
  • Java集合

    • Java集合概述
    • ArrayList
    • LinkedList
    • HashMap
    • LinkedHashMap
    • HashSet
    • TreeMap
    • Queue&Deque
  • Java并发

    • Java并发概述
    • 线程与进程
    • Thread类与线程生命周期
    • 线程安全
    • synchronized关键字
    • volatile关键字
    • Java内存模型(JMM)
    • 线程间通信
    • 线程池
    • 并发工具类
    • 原子操作类Atomic
    • 并发锁
    • 并发容器
    • ConcurrentHashMap
    • BlockingQueue
    • CopyOnWriteArrayList
    • ThreadLocal
    • Fork/Join框架
    • ScheduledThreadPoolExecutor
    • CompletableFuture
  • Java IO

    • Java IO概述
  • JVM

    • JVM概述
  • Java
  • Java基础
Wray
2024-10-31
目录

Java数组

Java 数组是一种数据结构,用于存储相同数据类型的多个元素。数组在 Java 中是最基础的数据存储方式之一,提供了快速随机访问的能力,适用于需要存储已知数量、相同类型的元素的场景。

# 数组的特点

  1. 大小固定:数组一旦创建,其大小是固定的,不能动态改变。
  2. 数据类型一致:数组只能存储相同类型的元素。
  3. 高效的随机访问:通过索引访问数组元素的速度非常快,时间复杂度为 O(1)。
  4. 内存连续存储:数组在内存中是连续分配的,因此查询速度快,但在插入和删除时可能会涉及到大量的元素移动。

# 数组的声明与初始化

在 Java 中,数组需要先声明,然后才能初始化。可以在声明时同时初始化,也可以在之后再初始化。

  • 声明数组:

    int[] numbers; // 声明一个存储整数的数组
    String[] names; // 声明一个存储字符串的数组
    
  • 初始化数组:

    numbers = new int[5]; // 初始化一个长度为 5 的整数数组
    names = new String[] {"Alice", "Bob", "Charlie"}; // 初始化一个存储字符串的数组
    
  • 同时声明并初始化:

    int[] scores = {90, 85, 70, 95, 88};
    

# 多维数组

Java 支持多维数组,最常见的是二维数组,类似于一个矩阵,可以理解为“数组的数组”。

  • 声明与初始化二维数组:

    int[][] matrix = new int[3][4]; // 声明并初始化一个 3 行 4 列的二维数组
    int[][] predefinedMatrix = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    }; // 声明并初始化一个 3x3 的二维数组
    

# 数组的遍历

可以使用 for 循环或增强型 for-each 循环来遍历数组中的元素。

  • 使用 for 循环:

    for (int i = 0; i < scores.length; i++) {
        System.out.println("Score: " + scores[i]);
    }
    
  • 使用 for-each 循环:

    for (int score : scores) {
        System.out.println("Score: " + score);
    }
    

# 数组的常见操作

  1. 获取数组长度:可以使用 length 属性获取数组的长度。

    int length = scores.length; // 获取 scores 数组的长度
    
  2. 复制数组:可以使用 System.arraycopy() 方法来复制数组。

    int[] copiedScores = new int[scores.length];
    System.arraycopy(scores, 0, copiedScores, 0, scores.length);
    
  3. 排序数组:可以使用 Arrays.sort() 方法来对数组进行排序。

    Arrays.sort(scores); // 对 scores 数组进行升序排序
    

# 数组的优缺点

  • 优点:

    • 数组的访问速度非常快,时间复杂度为 O(1)。
    • 在内存中连续存储,效率高。
  • 缺点:

    • 大小固定,不能动态调整。
    • 在插入和删除元素时,需要移动大量元素,效率低。

# 应用场景

  • 存储固定数量的数据:数组适合用于存储长度已知且不会动态变化的数据集,例如一个班级的学生成绩。
  • 多维数据的表示:二维数组常用于表示矩阵、棋盘等结构。
上次更新: 2024/10/31, 18:28:18
面向对象编程
String字符串

← 面向对象编程 String字符串→

Copyright © 2023-2024 Wray | 鄂ICP备2024050235号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式