Java进阶——数组超详细整理

        数组是一种基础且重要的数据结构,广泛应用于各种场景,本文将深入探讨 Java 数组的相关知识点,并结合实际场景展示其应用。

本文目录

    • 一、数组声明与初始化
      • 1. 声明方式
      • 2. 初始化方法
      • 3. 长度特性
    • 二、内存管理
    • 三、数组遍历与操作
      • 1. 遍历方式
      • 2. 数组填充
    • 四、多维数组
    • 五、数组工具类 Arrays
    • 六、数组与集合的转换
      • 1. 数组转集合
      • 2. 集合转数组
    • 总结

一、数组声明与初始化

1. 声明方式

数组的声明有两种方式:

int[] productIds; 

int productIds[];

2. 初始化方法

数组的初始化分为静态初始化、动态初始化和匿名数组:

// 静态初始化
int[] prices = {99, 199, 299}; 

// 动态初始化
String[] productNames = new String[5]; 


// 匿名数组
printProducts(new String[] {"手机", "平板", "笔记本"});

3. 长度特性

数组的长度是一个 final 属性,可通过 length 获取:

int len = prices.length;



二、内存管理

数组对象存储在堆中,引用变量存储数组地址:

int[] arr1 = {1,2,3};
int[] arr2 = arr1;  // 两个引用指向同一个数组
arr2[0] = 100;      // arr1[0] 也变为 100



三、数组遍历与操作

1. 遍历方式

数组的遍历有多种方式,包括传统 for 循环、增强 for 循环和 Java 8 的 Stream操作:

// 传统for循环
for(int i=0; i<productNames.length; i++){
    System.out.println(productNames[i]);
}

// 增强for循环
for(String name : productNames){
    System.out.println(name);
}

// Java8 Stream
Arrays.stream(prices)
      .filter(p -> p > 100)
      .forEach(System.out::println);

2. 数组填充

可以使用 Arrays.fill 方法进行数组填充:

Arrays.fill(productNames, "未知商品"); // 全部填充
Arrays.fill(productNames, 1, 3, "促销商品"); // 范围填充



四、多维数组

多维数组本质上是数组的数组,每个维度可不同长度:

// 二维数组声明
int[][] warehouseStock = new int[3][];

// 不规则数组初始化
warehouseStock[0] = new int[5];
warehouseStock[1] = new int[3];



五、数组工具类 Arrays

可以使用 Arrays.sort 进行排序,使用 Arrays.binarySearch 进行二分查找:

// 商品价格排序
double[] prices = {299.9, 159.0, 599.0};
Arrays.sort(prices);  // 修改原数组

// 二分查找(必须先排序)
int index = Arrays.binarySearch(prices, 159.0);



六、数组与集合的转换

1. 数组转集合

可以使用 Arrays.asList 将数组转换为集合:

String[] skus = {"A001", "B002"};
List<String> skuList = Arrays.asList(skus); 

2. 集合转数组

使用 toArray 方法将集合转换为数组:

List<Order> orders = getOrders();
Order[] orderArray = orders.toArray(new Order[0]);



总结

在使用数组时,可以优先使用工具类 Arrays 进行操作。



← 上一篇 Java进阶——常用工具类
记得点赞、关注、收藏哦!
下一篇 Java进阶——IO流实战详解 →

你可能感兴趣的:(Java,java,数据结构)