Java面试会问的——数组、声明、初始化、冒泡、多维数组、稀疏数组
生活随笔
收集整理的這篇文章主要介紹了
Java面试会问的——数组、声明、初始化、冒泡、多维数组、稀疏数组
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
數(shù)組
- 數(shù)組時相同類型數(shù)據(jù)的有序集合
- 數(shù)組描述的是相同類型的若干個數(shù)據(jù),按照一定的先后次序排列組合而成
- 其中,每一個數(shù)據(jù)稱作一個數(shù)組元素,每一個數(shù)組元素可以通過一個下標(biāo)來訪問它們。
數(shù)組聲明創(chuàng)建
-
首先必須聲明數(shù)組變量,才能在程序中使用數(shù)組。下面是聲明數(shù)組變量的語法。
- da taType[] arrayRefVar //首選方法
- dateType arrayRefVar[] //效果相同,但不是首選方法
-
java語言使用new操作符來創(chuàng)建數(shù)組,語法如下:
- dateType[] arrayRefVar = new dataType[arraySize]
-
數(shù)組的元素是通過索引訪問的,數(shù)組索引從 0 開始
-
獲取數(shù)組長度
- arrays.length
數(shù)組初始化
- 靜態(tài)初始化
- int[] a = {1,2,3,4};
- Man[] mans = {new Man(1,1), new Man(2,2)};
- 動態(tài)初始化
- Int[] a = new int[2];
- a[0] = 1;
- a[1] = 2;
- 默認(rèn)初始化
- 數(shù)組時引用類型,它的元素相當(dāng)于是實例變量,因此數(shù)組一經(jīng)分配空間,其中的每一個元素也被按照實例變量同樣的方式被陰式初始化。
數(shù)組的四個基本特點
- 數(shù)組的長度是確定的。數(shù)組一旦被創(chuàng)建,它的大小就是不可以改變的
- 數(shù)組的元素必須是相同類型,不允許出現(xiàn)混合類型
- 數(shù)組中的元素可以是任何數(shù)據(jù)類型,包括基本類型和引用類型
- 數(shù)組變量屬引用類型,數(shù)組也可以看成是在堆中的,因此數(shù)組無論保存原始類型還是其他對象類型,數(shù)組對象本身是在堆中的。
數(shù)組邊界
- 下標(biāo)的合法區(qū)間:【0,length-1】,如果越界就會報錯
- ArrayIndexOutOfBounds Exception:數(shù)組下標(biāo)越界異常
- 小結(jié)
- 數(shù)組是相同數(shù)據(jù)類型的有序集合
- 數(shù)組也是對象。數(shù)組元素相當(dāng)于對象的成員變量。
- 數(shù)組長度是確定的,不可變的。如果越界,則報錯》ArrayIndexOutOfBoundsException
多維數(shù)組
- 多維數(shù)組可以看成是數(shù)組的數(shù)組
Arrays類
- 數(shù)組工具類java.util.Arrays
- Arrays類中的方法都是static靜態(tài)方法,在使用的時候可以直接使用類名進行調(diào)用
- 對數(shù)組排序:sort方法。按升序
- 比較數(shù)組:通過equals方法比較數(shù)組中元素是否相等
稀疏數(shù)組
package com.sxl.array;public class Demo05 {public static void main(String[] args) {int[][] array = new int[11][11];array[1][2] = 1;array[2][3] = 2;//輸出原始數(shù)組for (int[] a: array) {for (int b: a) {System.out.print(b+"\t");}System.out.println();}//獲取有效值的個數(shù)int sum = 0;for (int i = 0; i < 11; i++) {for (int j = 0; j < 11; j++){if (array[i][j]!=0){sum++;}}}System.out.println("有效值的個數(shù)是:" +sum);//創(chuàng)建一個稀疏數(shù)組 第一行存放: 行數(shù) 列數(shù) 有效數(shù)個數(shù)int[][] array2 = new int[sum+1][3];array2[0][0] = 11; //行數(shù)array2[0][1] = 11; //列數(shù)array2[0][2] = sum; //有效數(shù)個數(shù)//遍歷原始二維數(shù)組,將非零數(shù)組存入稀疏數(shù)組中//加入Java開發(fā)交流君樣:593142328一起吹水聊天int count = 0;for (int i = 0; i < array.length; i++) {for (int j = 0;j < array[i].length; j++){if (array[i][j]!=0){count++;array2[count][0] = i;array2[count][1] = j;array2[count][2] = array[i][j];}}}System.out.println("輸出稀疏數(shù)組");for (int i = 0; i < array2.length; i++) {for (int j = 0; j < array2[i].length; j++){System.out.print(array2[i][j]+"\t");}System.out.println();}} }最后,祝大家早日學(xué)有所成,拿到滿意offer
總結(jié)
以上是生活随笔為你收集整理的Java面试会问的——数组、声明、初始化、冒泡、多维数组、稀疏数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平安备用金是什么意思
- 下一篇: 初级Java开发面试必问项!!! 标识符