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