帶你入門Java的數(shù)組
數(shù)組的定義
- 數(shù)組是相同類型數(shù)據(jù)的有序集合
- 數(shù)組描述的是相同類型的若干個數(shù)據(jù),按照一定的先后次序排列組合而成
- 其中,每一個數(shù)據(jù)稱作一個數(shù)組元素,每個數(shù)組元素可以通過一個下標來訪問它們。
數(shù)組的聲明和創(chuàng)建
首先必須聲明數(shù)組變量,才能在程序中使用數(shù)組。下面是聲明數(shù)組變量的語法:
dataType[] arrayRefVar;//首選方法 或 dataType arrayRefVar[];
Java語言使用new操作符來創(chuàng)建數(shù)組,語法如下:
dataType[] arrayRefVar = new dataType[arraySize];
數(shù)組的元素是通過索引訪問的,數(shù)組索引從0開始。
獲取數(shù)組長度:arrays.length
數(shù)組的創(chuàng)建的初始化方式:
1.動態(tài)初始化
int[] a = new int[5]; int[0] = 1; int[1] = 2;int[2] = 3;int[3] = 4;int[4] = 5;
2.靜態(tài)初始化
int[] b = new int[]{1,2,3,4,5};
int[] c = {1,2,3,4,5};
3.數(shù)組的默認初始化
數(shù)組引用類型,它的元素相當于類的實例變量,因此數(shù)組一經分配空間,其中的每個元素也被按照實例變量同樣的方式被隱式初始化。
數(shù)組的四個基本特點
- 其長度是確定的。數(shù)組一旦被創(chuàng)建,它的大小就是不可以改變的。
- 其元素必須是相同類型,不允許出現(xiàn)混合類型
- 數(shù)組中的元素可以是任何數(shù)據(jù)類型,包括基本類型和引用類型
- 數(shù)組變量屬引用類型,數(shù)組也可以看成是對象,數(shù)組中每個元素相當于該對象的成員變量。數(shù)組本身就是對象,Java中對象是在堆中的,因此數(shù)組無論保存原始類型還是其他對象類型,數(shù)組對象本身就在堆中。
數(shù)組邊界
下標合法區(qū)間:[0,length-1],如果越界就會報錯;
ArrayIndexOutOfBoundsException:數(shù)組下標越界異常
小結
- 數(shù)組是相同數(shù)據(jù)類型(數(shù)據(jù)類型可以為任意類型)的有序集合
- 數(shù)組也是對象。數(shù)組元素相當于對象的成員變量
- 數(shù)組長度的是確定的,不可變的。如果越界就會報錯:ArrayIndexOutOfBoundsException
數(shù)組的使用
package com.cnblogs;
/*
* 本類用于測試數(shù)組01 遍歷數(shù)組
*/
public class TestArr1 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9};
//遍歷數(shù)組
for(int i = 0; i < arr.length ; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("=============================");
//利用增強for循環(huán)遍歷數(shù)組
for(int x : arr) {
System.out.print(x + " ");
}
System.out.println();
System.out.println("=============================");
//使用自己定義的遍歷數(shù)組方法
printArr(arr);
}
//定義一個遍歷數(shù)組的方法
public static void printArr(int[] arr) {
for(int i = 0; i < arr.length ; i++) {
System.out.print(arr[i] + " ");
}
}
}
多維數(shù)組
- 多維數(shù)組可以看成是數(shù)組的數(shù)組,比如二維數(shù)組就是一個特殊的數(shù)組,其每一個元素都是一個一維數(shù)組。
- 二維數(shù)組
int[][] a = new int[2][5]//兩行,五列
package com.cnblogs;
/*
* 本類用于測試數(shù)組01 遍歷二維數(shù)組
*/
public class TestArr2 {
public static void main(String[] args) {
int[][] arr = {{1,2},{2,3},{3,4},{4,5}};
for(int i = 0 ; i < arr.length ; i++) {
for(int j = 0 ; j < arr[i].length ; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
Arrays類
- 數(shù)組工具類java.util.Arrays
- 由于數(shù)組對象本身并沒有什么方法可以供我們調用,但API中提供了一個工具類Arrays供我們使用,從而可以對數(shù)據(jù)對象進行一些基本操作
- 查看JDK幫助文檔
- Arrays類中的方法都是static修飾的靜態(tài)方法,在使用的時候可以直接使用類名進行調用,而“不用”使用對象來調用(是“不用”而不是“不能”)
- 具有以下常用功能
- 給數(shù)組賦值:通過fill方法
- 對數(shù)組排序:通過sort方法,按升序
- 比較數(shù)組:通過equals方法比較數(shù)組中元素是否相等
- 查找數(shù)組元素:通過binarySearch方法能對排序好的數(shù)組進行二分查找法操作
- 把數(shù)組賦值成一個指定長度的新數(shù)組:通過 Arrays.copyOf(數(shù)組,新的長度)方法
- 新數(shù)組的長度 大于 原數(shù)組, 相當于復制,并增加位置
- 新數(shù)組的長度 小于 原數(shù)組, 相當于截取一部分數(shù)據(jù)
package com.cnblogs;
/*
* 本類用于測試數(shù)組03 Arrays類
*/
//導入Arrays類
import java.util.Arrays;
public class TestArr3 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,28,15,13,9};
System.out.println(arr);//[I@3fb6a447 這里打印的是內存地址
//打印數(shù)組元素
System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5, 6, 28, 15, 13, 9]
//數(shù)組進行排序,升序
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5, 6, 9, 13, 15, 28]
//數(shù)組的填充
Arrays.fill(arr,6);
System.out.println(Arrays.toString(arr));//[6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
Arrays.fill(arr,2,4,8);//填充2-4 包括2 不包括4
System.out.println(Arrays.toString(arr));//[6, 6, 8, 8, 6, 6, 6, 6, 6, 6]
}
}
總結
本篇文章就到這里了,希望能夠幫到您,也希望您能夠多多關注腳本之家的更多內容!
相關文章
springboot中如何使用openfeign進行接口調用
這篇文章主要介紹了springboot中如何使用openfeign進行接口調用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
SpringBoot集成SFTP客戶端實現(xiàn)文件上傳下載實例
這篇文章主要為大家介紹了SpringBoot集成SFTP客戶端實現(xiàn)文件上傳下載實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
Springboot整個Quartz實現(xiàn)動態(tài)定時任務的示例代碼
這篇文章主要介紹了Springboot整個Quartz實現(xiàn)動態(tài)定時任務的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
SpringBoot自定義HttpMessageConverter操作
這篇文章主要介紹了SpringBoot自定義HttpMessageConverter的操作,具有很好的參考價值,如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
java中ImageReader和BufferedImage獲取圖片尺寸實例
這篇文章主要介紹了java中ImageReader和BufferedImage獲取圖片尺寸實例,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
關于任務調度框架quartz使用(異常處理,解決恢復后多次調度處理)
這篇文章主要介紹了關于任務調度框架quartz使用(異常處理,解決恢復后多次調度處理),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

