数组是一种基础且重要的数据结构,广泛应用于各种场景,本文将深入探讨 Java 数组的相关知识点,并结合实际场景展示其应用。
数组的声明有两种方式:
int[] productIds;
int productIds[];
数组的初始化分为静态初始化、动态初始化和匿名数组:
// 静态初始化
int[] prices = {99, 199, 299};
// 动态初始化
String[] productNames = new String[5];
// 匿名数组
printProducts(new String[] {"手机", "平板", "笔记本"});
数组的长度是一个 final
属性,可通过 length
获取:
int len = prices.length;
数组对象存储在堆中,引用变量存储数组地址:
int[] arr1 = {1,2,3};
int[] arr2 = arr1; // 两个引用指向同一个数组
arr2[0] = 100; // arr1[0] 也变为 100
数组的遍历有多种方式,包括传统 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);
可以使用 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.sort
进行排序,使用 Arrays.binarySearch
进行二分查找:
// 商品价格排序
double[] prices = {299.9, 159.0, 599.0};
Arrays.sort(prices); // 修改原数组
// 二分查找(必须先排序)
int index = Arrays.binarySearch(prices, 159.0);
可以使用 Arrays.asList
将数组转换为集合:
String[] skus = {"A001", "B002"};
List<String> skuList = Arrays.asList(skus);
使用 toArray
方法将集合转换为数组:
List<Order> orders = getOrders();
Order[] orderArray = orders.toArray(new Order[0]);
在使用数组时,可以优先使用工具类 Arrays
进行操作。
← 上一篇 Java进阶——常用工具类 |
记得点赞、关注、收藏哦!
|
下一篇 Java进阶——IO流实战详解 → |