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

