对JAVA中的一维数组的一些见解_java一维数组的定义和使用

createh52个月前 (02-26)技术教程14

在Java中,一维数组是一种用来存储相同数据类型元素的线性数据结构,通过索引访问元素。以下是关于一维数组的基本说明:

个人见解,如有错误请指出


1. 声明数组

数组的声明需要指定数据类型数组名,格式如下:

 方式1:声明数组(未初始化)数据类型[] 数组名;  
 例如:int[] numbers;
 方式2:声明数组(C风格,不推荐)数据类型 数组名[]; 
 例如:int numbers[];

2. 初始化数组

数组必须初始化后才能进行使用,常见的初始化方式如下:

静态初始化

直接指定元素值,适用于已经知道具体元素的场景:

数据类型[] 数组名 = {元素1, 元素2, ..., 元素n};
示例:int[] numbers = {10, 20, 30, 40, 50};
      String[] names = {"Alice", "Bob", "Charlie"};

动态初始化

先指定数组长度,再逐个赋值,适用于元素值后续确定的场景:

数据类型[] 数组名 = new 数据类型[长度];
// 示例:int[] numbers = new int[5];

3. 访问数组元素

  • 索引范围:从 0 到 数组长度。
  • 语法:数组名[索引]


int[] numbers = {10, 20, 30, 40, 50};
System.out.println(numbers[0]);  
// 输出:10
System.out.println(numbers[3]);  
// 输出:40

4. 数组长度

通过 数组名.length 获取数组长度(注意是属性,不是方法):

int[] numbers = {10, 20, 30};
System.out.println(numbers.length); 
 // 输出:3

5. 遍历数组

使用普通 for 循环(这个是我最爱用的,因为从C语言过来用习惯了)

适合需要索引的场景:

for (int i = 0; i < numbers.length; i++) {
    System.out.println("索引 " + i + ": " + numbers[i]);}

使用增强 for 循环(for-each)(这种写法现在很多人用,特别是前端的)

适合仅需访问元素,无需索引的场景:

for (int num : numbers) {
    System.out.println(num);}

6. 默认初始值

数据类型

默认值

int/double

0/0.0

boolean

false

引用类型

null


7. 数组的常见操作

复制数组

// 方式1:System.arraycopy()
     int[] source = {1, 2, 3};
     int[] dest = new int[3];
     System.arraycopy(source, 0, dest, 0, source.length);


// 方式2:Arrays.copyOf()
int[] dest = Arrays.copyOf(source, source.length);

排序数组

int[] numbers = {5, 3, 8, 1};
Arrays.sort(numbers);  // 排序后:{1, 3, 5, 8}

8. 常见的一些错误

数组越界(ArrayIndexOutOfBoundsException)

int[] arr = {1, 2, 3};

System.out.println(arr[3]);  // 错误!最大索引为2,因为下标是从0开始的

空指针异常(NullPointerException)

int[] arr = null;
System.out.println(arr[0]);  
// 错误!数组没有进行初始化

9. 示例代码

public class ArrayExample {
    public static void main(String[] args) {
        // 静态初始化
        int[] scores = {90, 85, 78, 95, 88};
        
        // 遍历并计算总分
        int total = 0;
        for (int score : scores) {
            total += score;
        }
        System.out.println("总分:" + total);  // 输出:436
        
        // 动态初始化
        String[] students = new String[3];
        students[0] = "Alice";
        students[1] = "Bob";
        students[2] = "Charlie";
        
        // 输出所有学生
        for (int i = 0; i < students.length; i++) {
            System.out.println("学生" + (i+1) + ": " + students[i]);
        }
    }}

总结

  • 一维数组是存储相同类型元素的线性集合。
  • 索引从0开始,最大索引为 数组的总长度减掉1。
  • 初始化方式分为静态和动态,需注意默认值。
  • 遍历时可根据需求选择普通 for 或增强 for 循环。
  • 操作数组时需要避免越界和空指针异常

相关文章

Java常用的7大排序算法汇总_java常见的排序算法

这段时间闲了下来,就抽了点时间总结了下java中常用的七大排序算法,希望以后可以回顾!1.插入排序算法插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好...

java数据结构与算法之希尔排序_希尔排序csdn

希尔排序概述希尔排序因计算机科学家Donald1.Shell而得名,他在1959年发现了希尔排序算法。希尔排序基于插入排序,但是增加了一个新的特性,大大地提高了插入排序的执行效率。依靠这个特别的实现机...

java实现10种排序算法_java十种排序算法

1.冒泡排序(Bubble Sort)import java.util.Arrays;//冒泡排序public class BubbleSort_01 {public static void main...

手写快排:教你用Java写出高效排序算法!

#每日读书打卡#大家好!我是小米,一个29岁,积极活泼、喜欢分享技术的程序员。今天我们来聊聊快速排序(QuickSort),一个经典的排序算法,也是许多面试中的常客!快速排序的基本思想快速排序(Qu...

Java实现数组去除重复数据的方法_java如何去除数组中重复的数字

本文实例讲述了Java实现数组去除重复数据的方法。分享给大家参考,具体如下:前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现,有好多方...

java培训:什么是java对象数组?_对象数组 java

我们在使用java编码时,数组在Java语言中是一种非常重要的数据结构之一,它用来存储固定大小的同类型元素。Java数组在Java培训学习中过程中属于比较重要的一个章节也是比较难的一个章节,所以大家要...