<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
陣列的定義
陣列是相同型別資料的有序集合。陣列描述的是相同型別的若干個資料,按照一定的先後次序排列組合而成。其中,每一個資料稱作一個元素,每個元素可以通過一個索引(下標)來存取它們。
陣列的四個基本特點
.length-1
結束PS:陣列變數屬於參照型別,陣列也是物件,陣列中的每個元素相當於該物件的成員變數。陣列本身就是物件,Java中物件是在堆中的,因此陣列無論儲存原始型別還是其他物件型別,陣列物件本身是在堆中儲存的。
陣列下標從0開始
arr[0] == 12
arr[1] == 6
arr[2] == 27
…
arr[5] == 43
陣列的初始化方式總共有三種:預設初始化、靜態初始化、動態初始化。
陣列是參照型別,它的元素相當於類的範例變數,因此陣列一經分配空間,其中的每個元素也被按照範例變數同樣的方式被隱式初始化。
int[] arr = new int[3]; //陣列有預設的初始化值
基本資料型別陣列的預設值:
byte[] : 0
short[] : 0
cahr[] : ‘u0000’
int[] : 0
long[] : 0
float[] : 0.0
double[] : 0.0
boolean[] : false
參照資料型別陣列的預設值:null
除了用new關鍵字來產生陣列以外,還可以直接在定義陣列的同時就為陣列元素分配空間並賦值。
int[] arr = {12,23,45}; int[] arr = new int[]{12,23,45};
陣列定義與為陣列元素分配空間並賦值的操作分開進行。
int[] arr ; arr = new int[3] arr[0] = 12; arr[1] = 23; arr[2] = 45;
兩種方法
public class TestCode04 { public static void main(String[] args) { int[] arr1 = new int[]{1, 2, 3, 4, 5}; int[] arr2 = {5, 4, 3, 2, 1}; //方式1,使用普通for迴圈 //arr1.length獲取陣列長度的方法 for (int i = 0; i < arr1.length; i++) { System.out.print(arr1[i] + " "); } System.out.println(); //方式2,使用增強for迴圈 for (int a : arr2) { System.out.print(a + " "); } } }
問題:給定一個陣列int[] arr = {3,5,6,17,26,9,0,7};
,求出陣列中最大的數
public class TestCode05 { public static void main(String[] args) { int[] arr={3,5,6,17,26,9,0,7}; int max=arr[0];//假設最大元素為陣列arr[0]位置上的數 //然後依次向後比較 for(int i=1;i<arr.length;i++){ //因為max=arr[0];可以從arr[1]位置開始比較 if(arr[i]>max){ max=arr[i]; } } System.out.println(max); } }
查詢指定位置元素
給定一個陣列,查詢索引位置為2上的元素
public class TestCode06 { public static void main(String[] args) { int[] arr={3,5,6,17,26,9,0,7}; //直接輸出arr[2]; System.out.println(arr[2]); //輸出-->6 } }
上面程式碼體現了陣列的一個優點:在按照位置查詢的時候,直接一步到位,效率非常高
查詢指定元素的位置–>找出元素對應的索引
public class TestCode07{ public static void main(String[] args){ //查詢指定元素的位置-->找出元素對應的索引 //給定一個陣列: int[] arr = {12,34,56,7,3,56}; // 0 1 2 3 4 5 //功能:查詢元素12對應的索引: int index = -1; //這個初始值只要不是陣列的索引即可 for(int i=0;i<arr.length;i++){ if(arr[i]==12){ index = i;//只要找到了元素,那麼index就變成為i break;//只要找到這個元素,迴圈就停止 } } if(index!=-1){ System.out.println("元素對應的索引:"+index); }else{//index==-1 System.out.println("查無此數!"); } } }
為了方便我們對陣列進行操作,系統提供一個類Arrays,我們將它當做工具類來使用。
下面通過程式碼演示Arrays類中常用的方法:
Arrays.toString(arr);//對陣列進行遍歷檢視,返回的是一個字串
Arrays.sort(arr);//對陣列進行排序 -->升序
Arrays.copyOf(arr,index);//對陣列的複製
Arrays.copyOfRange(arr,startindex,endindex);//區間複製
Arrays.equals(arr1,arr2);//比較兩個陣列的值是否一樣
Arrays.fill(arr,1);//陣列填充
import java.util.Arrays; public class TestCode08{ public static void main(String[] args){ //給定一個陣列: int[] arr = {1,3,7,2,4,8}; //toString:對陣列進行遍歷檢視的,返回的是一個字串 System.out.println(Arrays.toString(arr)); //binarySearch:二分法查詢:找出指定陣列中的指定元素對應的索引: //這個方法的使用前提:一定要檢視的是一個有序的陣列: //sort:排序 -->升序 Arrays.sort(arr); System.out.println(Arrays.toString(arr)); System.out.println(Arrays.binarySearch(arr,4)); int[] arr2 = {1,3,7,2,4,8}; //copyOf:完成陣列的複製: int[] newArr = Arrays.copyOf(arr2,4); System.out.println(Arrays.toString(newArr)); //copyOfRange:區間複製: int[] newArr2 = Arrays.copyOfRange(arr2,1,4);//[1,4)-->1,2,3位置 System.out.println(Arrays.toString(newArr2)); //equals:比較兩個陣列的值是否一樣: int[] arr3 = {1,3,7,2,4,8}; int[] arr4 = {1,3,7,2,4,8}; System.out.println(Arrays.equals(arr3,arr4));//true System.out.println(arr3==arr4);//false ==比較左右兩側的值是否相等,比較的是左右的地址值,返回結果一定是false //fill:陣列的填充: int[] arr5 = {1,3,7,2,4,8}; Arrays.fill(arr5,10); System.out.println(Arrays.toString(arr5)); } }
本質上全部都是一維陣列
int[][] arr = {{1,2},{4,5,6},{4,5,6,7,8,9,9}}; int[][] arr =new int[][] {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
int[][] arr = new int[3][]; //本質上定義了一維陣列長度為3,每個「格子」中放入的是一個陣列 arr[0] = new int[]{1,2}; arr[1] = new int[]{3,4,5,6}; arr[2] = new int[]{34,45,56};
陣列是參照型別,它的元素相當於類的範例變數,因此陣列一經分配空間,其中的每個元素也被按照範例變數同樣的方式被隱式初始化。
int[][] arr=new int[3][3];//定義一個3*3的二維陣列,預設值為0
兩個for迴圈
for (int i = 0; i < arr.length; i++) { for (int j = 0; i < arr[i].length; j++) { System.out.print(arr[i][j] + " "); } System.out.println();//換行 } }
到此這篇關於Java零基礎入門陣列的文章就介紹到這了,更多相關Java 陣列內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45