首頁 >Java >java教程 >Java 中的陣列:特徵、用法和實際場景

Java 中的陣列:特徵、用法和實際場景

Barbara Streisand
Barbara Streisand原創
2025-01-03 12:37:39738瀏覽

Arrays in Java: Characteristics, Usage, and Real-Life Scenarios

本文探討了 Java 中陣列的特性,例如固定大小、高效存取和類型安全,同時將它們與 ArrayList 等動態集合類型進行比較。它還提供了現實生活中的場景,例如儲存產品數量、修改每日溫度、對學生成績進行排序等,來展示陣列在 Java 中的實際應用。


在 Java 中,陣列是一種基本資料結構,允許開發人員在單一變數中儲存相同類型的多個值。由於其固定大小和直接存取功能,陣列提供了管理和操作資料的有效方法。本文將探討 Java 陣列的特性,將它們與 ArrayList 等其他集合類型進行比較,並展示陣列在現實生活中的用途。了解陣列的屬性和應用對於建立高效的 Java 程式至關重要。

下面列出了 Java 中的陣列特性:

  • 固定大小:一旦定義,陣列的大小就無法改變。
  • 有序:陣列按順序儲存元素,這意味著可以在恆定時間內透過索引存取元素。
  • 效率:存取陣列中的任何元素都是一個恆定時間的操作。數組的記憶體開銷非常低,因為它們儲存單一類型的資料。
  • 單一類型:Java 陣列是類型化的,這意味著它們只能儲存與陣列聲明中聲明的資料類型相同的元素。

陣列與ArrayList不同,ArrayList是列表,是集合介面的一部分。 Java 中的介面是一種參考類型,類似於類,只能包含常數、預設方法、靜態方法和巢狀類型(Tutorials Point,n. d.)。對於集合接口,它包括 add()、remove()、get() 和 size() 等方法(Oracle 文檔,n.d.)。這允許不同類型的清單類別(例如 ArrayList、LinkedList 和其他類似 Set 類別)使用這些方法。

請注意,陣列不是集合介面的一部分。換句話說,它們沒有與之關聯的方法。

使用陣列的現實場景

場景 1 在商店中儲存產品數量:
陣列可用於追蹤商店中不同產品的數量。例如,陣列的每個元素代表特定產品的數量。

public class Main {
    public static void main(String[] args) {
        // Stores product quantities
        int[] quantities = new int[4];   
        // Storing product quantities
        quantities[0] = 50;  
        quantities[1] = 30;  
        quantities[2] = 20;  
        quantities[3] = 40;  
        // Prints the product quantities
        for (int i = 0; i < quantities.length; i++) {
            System.out.println("Product " + (i + 1) + " Quantity: " 
                                                            +   quantities[i]);
        }
    }
}

輸出:

Product 1 Quantity: 50
Product 2 Quantity: 30
Product 3 Quantity: 20
Product 4 Quantity: 40

場景 2:
數組可用於儲存和修改每日溫度。

public class Main {
    public static void main(String[] args) {
        // Stores daily temperatures 
        int[] temperatures = {68, 70, 75, 72, 69, 71, 73};

        // Prints initial temperatures
        System.out.println("Initial daily temperatures:");
        printTemperatures(temperatures);

        // Modifies temperatures
        modifyTemperature(temperatures, 2, 78);
        modifyTemperature(temperatures, 5, 74);

        // Prints updated temperatures
        System.out.println("\nUpdated daily temperatures:");
        printTemperatures(temperatures);
    }

    // Method to print all temperatures
    public static void printTemperatures(int[] temperatures) {
        String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", 
                         "Friday","Saturday", "Sunday"};
        for (int i = 0; i < temperatures.length; i++) {
            System.out.println(days[i] + ": " + temperatures[i] + "°F");
        }
    }

    // Method to modify a temperature
    public static void modifyTemperature(int[] temperatures, int dayIndex, 
                                                               int newTemperature) {
        if (dayIndex >= 0 && dayIndex < temperatures.length) {
            temperatures[dayIndex] = newTemperature;
        } else {
            System.out.println("Invalid day index!");
        }
    }
}

輸出:

public class Main {
    public static void main(String[] args) {
        // Stores product quantities
        int[] quantities = new int[4];   
        // Storing product quantities
        quantities[0] = 50;  
        quantities[1] = 30;  
        quantities[2] = 20;  
        quantities[3] = 40;  
        // Prints the product quantities
        for (int i = 0; i < quantities.length; i++) {
            System.out.println("Product " + (i + 1) + " Quantity: " 
                                                            +   quantities[i]);
        }
    }
}

場景 3
數組可用於儲存和排序學生在特定班級的成績。

Product 1 Quantity: 50
Product 2 Quantity: 30
Product 3 Quantity: 20
Product 4 Quantity: 40

輸出

public class Main {
    public static void main(String[] args) {
        // Stores daily temperatures 
        int[] temperatures = {68, 70, 75, 72, 69, 71, 73};

        // Prints initial temperatures
        System.out.println("Initial daily temperatures:");
        printTemperatures(temperatures);

        // Modifies temperatures
        modifyTemperature(temperatures, 2, 78);
        modifyTemperature(temperatures, 5, 74);

        // Prints updated temperatures
        System.out.println("\nUpdated daily temperatures:");
        printTemperatures(temperatures);
    }

    // Method to print all temperatures
    public static void printTemperatures(int[] temperatures) {
        String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", 
                         "Friday","Saturday", "Sunday"};
        for (int i = 0; i < temperatures.length; i++) {
            System.out.println(days[i] + ": " + temperatures[i] + "°F");
        }
    }

    // Method to modify a temperature
    public static void modifyTemperature(int[] temperatures, int dayIndex, 
                                                               int newTemperature) {
        if (dayIndex >= 0 && dayIndex < temperatures.length) {
            temperatures[dayIndex] = newTemperature;
        } else {
            System.out.println("Invalid day index!");
        }
    }
}

總而言之,Java 陣列具有固定大小,它們儲存相同類型的多個值。它們透過使用索引提供對元素的高效、持續的訪問,使它們適合需要關注記憶體開銷和速度的場景。雖然陣列不提供像 ArrayList 這樣的集合的靈活性,但它們仍然是 Java 有效處理有序資料工具包中非常寶貴的一部分。


參考文獻:

Oracle 文件。 (日期不詳)。 集合 (Java SE 21) [Java 平台,標準版 Java API 規格]。甲骨文。取自 https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Collection.html/

教程點。 (日期不詳)。 Java 介面。教程點。取自 https://www.tutorialspoint.com/java/java_interfaces.htm


原刊於 Alex.omegapy on Medium,由 Level UP Coding 於 2024 年 10 月 16 日發布。

以上是Java 中的陣列:特徵、用法和實際場景的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn