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

createh53周前 (02-26)技术教程4

在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 冒泡排序_Java冒泡排序法

1 概念冒泡排序(Bubble Sort),是计算机科学领域中较简单的一种排序算法。它重复地走访需要进行排序的元素,依次比较两个相邻的元素,如果元素的顺序(如从大到小、首字母从A到Z)错误就把元素的位...

堆排序实战:轻松实现高效排序,附详细Java代码

#每日读书打卡#Hello,大家好!我是你们的小米,今天又来给大家分享干货啦!最近很多小伙伴们都对排序算法产生了浓厚的兴趣,继上次分享了“手写快排”之后,今天我们再来搞搞堆排(Heap Sort),...

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

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

八种经典排序算法总结,妈妈再也不用担心我不会了

前言算法和数据结构是一个程序员的内功,所以经常在一些笔试中都会要求手写一些简单的排序算法,以此考验面试者的编程水平。下面我就简单介绍八种常见的排序算法,一起学习一下。一、冒泡排序思路:比较相邻的元素。...

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

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