Java基礎篇--數組

目錄

聲明和初始化數組:

訪問和修改數組元素:

數組長度:

遍歷數組:

多維數組的遍歷:

數組的常見操作和方法:

拓展小知識:


數組是Java中的一種數據結構,用于存儲相同類型的多個元素。它提供了一個連續的內存塊來存儲數據,并可以通過索引訪問和操作數組中的元素。

聲明和初始化數組:

  • 數組聲明:在聲明數組時,需要指定數組的數據類型和名稱。例如,int[] myArray;?聲明了一個名為?myArray?的整型數組。
  • 數組初始化:通過使用關鍵字?new?創建數組對象,并指定數組的長度或直接提供元素的初始值來初始化數組。
    • 通過指定長度初始化數組:myArray = new int[5];?使用?new?關鍵字創建一個包含5個整數元素的整型數組。
    • 直接提供元素的初始值初始化數組:int[] myArray = {1, 2, 3, 4, 5};?定義并初始化了一個包含元素 1、2、3、4 和 5 的整型數組。
int[] myArray;  // 聲明一個整型數組變量
myArray = new int[5];  // 創建一個包含5個整數元素的數組int[] myArray = {1, 2, 3, 4, 5};  // 聲明并初始化一個整型數組// 多維數組
int[][] myArray = new int[3][4];  // 聲明一個3行4列的二維數組

訪問和修改數組元素:

  • 數組的索引從0開始,即第一個元素的索引是0。要訪問和修改數組中的元素,可以使用方括號?[]?并提供相應的索引。
    • 獲取數組中的元素值:int value = myArray[0];?獲取索引為0的元素值并賦給變量?value
    • 修改數組中的元素值:myArray[1] = 10;?將索引為1的元素值設置為10。
int value = myArray[0];  // 獲取數組中索引為0的元素值myArray[1] = 10;  // 修改數組中索引為1的元素值

數組長度:

  • 通過使用數組的 length 屬性,可以獲取數組的長度。例如,int length = myArray.length; 獲取數組 myArray 的長度,并將其賦給變量 length。
int length = myArray.length;  // 獲取數組的長度

遍歷數組:

  • 可以使用循環結構(例如?for?循環)來遍歷數組中的元素并進行處理。
  • 使用下標循環遍歷:通過控制索引的范圍,從0開始逐個訪問數組中的元素并進行操作。
for (int i = 0; i < myArray.length; i++) {System.out.println(myArray[i]);
}
  • 使用 for-each 循環遍歷:使用 for-each 循環語法可以簡化數組的遍歷操作。它會依次遍歷數組中的每個元素,而不需要顯式地使用索引。
for (int num : myArray) {System.out.println(num);
}

多維數組的遍歷:

多維數組是由數組組成的數組。可以使用嵌套的循環結構來遍歷多維數組中的元素。

int[][] myArray = new int[3][4];  // 一個3行4列的二維數組for (int i = 0; i < myArray.length; i++) {for (int j = 0; j < myArray[i].length; j++) {System.out.println(myArray[i][j]);}
}

數組的常見操作和方法:

java.util.Arrays 類能方便地操作數組,它提供的所有方法都是靜態的。

以下是對 java.util.Arrays 類提供的常用方法的簡要介紹:

  1. fill 方法:用指定的值填充整個數組。
  2. sort 方法:按升序對數組進行排序。
  3. equals 方法:比較兩個數組中的元素值是否相等。
  4. binarySearch 方法:在已排序的數組中使用二分查找法查找指定元素。

注意:在使用索引訪問和修改數組元素時,確保索引值在數組的有效范圍內,以避免出現 ArrayIndexOutOfBoundsException 異常。

import java.util.Arrays;public class ArraysExample {public static void main(String[] args) {// 聲明并初始化一個整型數組int[] array = {5, 2, 9, 1, 7};// 使用fill方法將整個數組填充為指定的值Arrays.fill(array, 0);System.out.println("使用fill方法后的數組: " + Arrays.toString(array));// 運行結果:使用fill方法后的數組: [0, 0, 0, 0, 0]// 使用sort方法對數組進行升序排序Arrays.sort(array);System.out.println("使用sort方法后的數組: " + Arrays.toString(array));// 運行結果:使用sort方法后的數組: [0, 0, 0, 0, 0]// 聲明并初始化一個新的整型數組int[] newArray = {1, 2, 3, 4, 5};// 使用equals方法比較兩個數組的元素值是否相等boolean isEqual = Arrays.equals(array, newArray);System.out.println("兩個數組是否相等: " + isEqual);// 運行結果:兩個數組是否相等: false// 使用binarySearch方法在已排序的數組中查找指定元素int index = Arrays.binarySearch(newArray, 4);System.out.println("查找元素的索引位置: " + index);// 運行結果:查找元素的索引位置: 3}
}

拓展小知識:

ArrayIndexOutOfBoundsException 是 Java 中的一個運行時異常,它表示數組訪問超出了有效索引范圍。這通常發生在以下情況下:

  1. 索引小于零:嘗試使用負數作為數組元素的索引。
    int[] myArray = {1, 2, 3};
    int value = myArray[-1];  // 導致 ArrayIndexOutOfBoundsException 異常
    
  2. 索引大于等于數組長度:嘗試訪問或修改數組中不存在的索引位置。
    int[] myArray = {1, 2, 3};
    int value = myArray[3];  // 導致 ArrayIndexOutOfBoundsException 異常
    
  3. 在嵌套數組(多維數組)中的某個維度上的索引超出范圍。
    int[][] myArray = new int[3][4];  // 3行4列的二維數組
    int value = myArray[3][0];  // 導致 ArrayIndexOutOfBoundsException 異常
    

為避免 ArrayIndexOutOfBoundsException 異常,需要確保在訪問和修改數組元素時,所使用的索引值位于合法的范圍內:

  • 數組的索引范圍為從 0 到長度減一(length - 1)的整數范圍。
  • 多維數組的每個維度的索引范圍也是相同的。

在編寫代碼時,需要仔細檢查數組索引的使用,確保它們在合法范圍內,可以通過條件判斷、循環和邊界檢查等方法來避免 ArrayIndexOutOfBoundsException 異常的發生。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34768.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34768.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34768.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

B100-技能提升-線程池分布式鎖

目錄 線程池什么是線程池&#xff1f;為什么用線程池?線程池原理常見四種線程池和自定義線程池 線程池 什么是線程池&#xff1f; 池化技術 為什么用線程池? 1 由于設置最大線程數&#xff0c;防止線程過多而導致系統崩潰。 2 線程復用&#xff0c;不需要頻繁創建或銷毀…

包管理機制pip3

pip3 安裝pip3 安裝pip3 apt install python3-pip yum install python3-pip從倉庫出發的命令 查詢倉庫信息 // 獲取默認pip3源 pip3 config get global.index-url查詢所有軟件包 查詢已經安裝的所有軟件包 pip3 list從軟件包出發的命令 從軟件包名出發查詢其他信息 查詢…

230. 二叉搜索樹中第K小的元素

介紹 中序遍歷&#xff1a;左子樹 -> 中 -> 右子樹 二叉搜索樹&#xff1a;中序遍歷可以得到有序的序列 遞歸法 1.使用函數循環遞歸處理 2.使用一個數組來保存 k, 保證在個個遞歸函數中都能看到 看的變化&#xff1b;每訪問一個節點&#xff0c;這個數減一&#xff0c…

軟件測試基礎篇——Redis

Redis Redis數據庫的配置與連接 解壓redis數據庫的安裝包&#xff08;建議把解壓后的安裝包放到磁盤的根目錄&#xff0c;方便訪問操作&#xff09;打開【命令行窗口】&#xff1a;winR在命令行窗口&#xff0c;進入到redis安裝目錄中 ? 格式一&#xff1a;cd /d redis目錄…

Linux安裝Zookeeper

1、Zookeeper簡介 ZooKeeper是一個分布式的&#xff0c;開放源碼的分布式應用程序協調服務&#xff0c;是Google的Chubby一個開源的實現&#xff0c;是Hadoop和Hbase的重要組件。它是一個為分布式應用提供一致性服務的軟件&#xff0c;提供的功能包括&#xff1a;配置維護、域…

自然語言處理從入門到應用——LangChain:記憶(Memory)-[記憶的類型Ⅲ]

分類目錄&#xff1a;《自然語言處理從入門到應用》總目錄 對話令牌緩沖存儲器ConversationTokenBufferMemory ConversationTokenBufferMemory在內存中保留了最近的一些對話交互&#xff0c;并使用標記長度來確定何時刷新交互&#xff0c;而不是交互數量。 from langchain.me…

基于灰狼優化(GWO)、帝國競爭算法(ICA)和粒子群優化(PSO)對梯度下降法訓練的神經網絡的權值進行了改進(Matlab代碼實現)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…

環保行業如何開發廢品回收微信小程序

廢品回收是近年來受到越來越多人關注的環保行動。為了推動廢品回收的普及和方便&#xff0c;我們可以利用微信小程序進行制作&#xff0c;方便人們隨時隨地參與廢品回收。 首先&#xff0c;我們需要注冊并登錄喬拓云賬號&#xff0c;并進入后臺。喬拓云是一個提供微信小程序制作…

數據結構(一):順序表詳解

在正式介紹順序表之前&#xff0c;我們有必要先了解一個名詞&#xff1a;線性表。 線性表&#xff1a; 線性表是&#xff0c;具有n個相同特性的數據元素的有限序列。常見的線性表&#xff1a;順序表、鏈表、棧、隊列、數組、字符串... 線性表在邏輯上是線性結構&#xff0c;但…

【云原生】Pod詳講

目錄 一、Pod基礎概念1.1//在Kubrenetes集群中Pod有如下兩種使用方式&#xff1a;1.2pause容器使得Pod中的所有容器可以共享兩種資源&#xff1a;網絡和存儲。1.3kubernetes中的pause容器主要為每個容器提供以下功能&#xff1a;1.4Kubernetes設計這樣的Pod概念和特殊組成結構有…

Django中級指南:理解并實現Django的模型和數據庫遷移

Django 是一個極其強大的 Python Web 框架&#xff0c;它提供了許多工具和特性&#xff0c;能夠幫助我們更快速、更便捷地構建 Web 應用。在本文中&#xff0c;我們將會關注 Django 中的模型&#xff08;Models&#xff09;和數據庫遷移&#xff08;Database Migrations&#x…

上傳代碼到GitCode

Git 全局設置 git config --global user.name "AnyaPapa" git config --global user.email "fangtaihongqq.com" 添加SSH密鑰 Mac終端輸入命令 cd existing_folder git init git remote add origin gitgitcode.net:Java_1710/test.git git add . git co…

2023國賽數學建模A題思路分析

文章目錄 0 賽題思路1 競賽信息2 競賽時間3 建模常見問題類型3.1 分類問題3.2 優化問題3.3 預測問題3.4 評價問題 4 建模資料 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 競賽信息 全國大學生數學建模…

Mac電腦如何把照片以文件格式導出?

在Mac電腦上&#xff0c;我們經常會拍攝、保存和編輯各種照片。有時候&#xff0c;我們可能需要將這些照片以文件形式導出&#xff0c;以便與他人共享、打印或備份。無論您是要將照片發送給朋友、上傳到社交媒體&#xff0c;還是保存到外部存儲設備&#xff0c;導出照片為文件是…

我的Python教程:使用Pyecharts畫柱狀圖

Pyecharts是一個用于生成 Echarts 圖表的 Python 庫。Echarts 是一個基于 JavaScript 的數據可視化庫&#xff0c;提供了豐富的圖表類型和交互功能。通過 Pyecharts&#xff0c;你可以使用 Python 代碼生成各種類型的 Echarts 圖表&#xff0c;例如折線圖、柱狀圖、餅圖、散點圖…

java不支持解壓rar5的解決辦法--引用本地7zip.exe

由于rar5算法未開源&#xff0c;沒有合適的JAVA依賴能夠解決解壓rar5。在運行中報錯&#xff1a; javacom.github.junrar.exception.RarException: badRarArchive 通過引用本地7zip.exe&#xff0c;命令行執行解決&#xff1a; private static void unZipRar5File(String fileP…

探索可視化應用的嶄新前景

在當今數據驅動的世界中&#xff0c;可視化應用成為了一種強大的工具&#xff0c;能夠將復雜的數據轉化為易于理解和分析的圖形形式。隨著技術的不斷發展和創新&#xff0c;可視化應用正迎來嶄新的前景。本文將介紹可視化應用的定義、重要性以及當前的發展趨勢&#xff0c;并探…

Controller是單例還是多例?

Controller是單例還是多例&#xff1f; controller默認是單例的&#xff0c;不要使用非靜態的成員變量&#xff0c;否則會發生數據邏輯混亂。正因為單例所以不是線程安全的。 我們下面來簡單的驗證下&#xff1a; package com.riemann.springbootdemo.controller;import org…

docker配置文件

/etc/docker/daemon.json 文件作用 /etc/docker/daemon.json 文件是 Docker 配置文件&#xff0c;用于配置 Docker 守護進程的行為和參數。Docker 守護進程是負責管理和運行 Docker 容器的后臺進程&#xff0c;通過修改 daemon.json 文件&#xff0c;可以對 Docker 守護進程進…