數(shù)組是多個(gè)相同類型數(shù)據(jù)的組合,實(shí)現(xiàn)對(duì)這些數(shù)據(jù)的統(tǒng)一管理。
數(shù)組中的元素可以是任意數(shù)據(jù)類型,包括基本類型和引用類型,但是不能混合用
數(shù)組創(chuàng)建后,如果沒有進(jìn)行扶著,有默認(rèn)值。
byte 0,short 0,int 0,long 0,float 0 ,double 0,char \u0000,boolean false,String null。
使用數(shù)組的步驟:使用數(shù)組并開辟空間,給數(shù)組的各個(gè)元素進(jìn)行復(fù)制,使用數(shù)組
數(shù)組的下標(biāo)從0開始的
數(shù)組的下標(biāo)必須在指定范圍內(nèi)使用,否則就會(huì)數(shù)組越界。
數(shù)組屬于引用類型,數(shù)組數(shù)據(jù)的對(duì)象是object。
import java.util.Scanner;
public class array {public static void main(String[] args) {//創(chuàng)建一個(gè)char類型的26個(gè)元素的數(shù)組,分別放置'A'-'Z'.使用for循環(huán)訪問所有元素并打印出來。
char[] chars = new char[26];
for (int i = 0; i< chars.length; i++ ) {chars[i] = (char)('A' + i);//這里由于'A' + i是int型,需要強(qiáng)制轉(zhuǎn)換
}
System.out.println("chars數(shù)組如下:");
for (int i = 0 ; i< chars.length; i++) {System.out.print(chars[i] + " ");
}
}
}
public class array02 {public static void main(String[] args) {//請(qǐng)求出一個(gè)數(shù)組int[]的大值{4,-1,9,10,23},并得到相應(yīng)的下標(biāo),并求出其平均值。
int[] arrays = {4, -1, 9, 10, 23};
int max = arrays[0];
int maxindex = 0;
int sum = 4;
double avg = 0;
for (int i = 1; i< arrays.length; i++ ) {if (arrays[i] >max) {max = arrays[i];
maxindex = i;
}
sum += arrays[i];
}
avg = sum / arrays.length;
System.out.println("該數(shù)組的大值為:" + max);
System.out.println("其對(duì)應(yīng)的下標(biāo)為:" + maxindex);
System.out.println("其平均值為:" + avg);
}
}
數(shù)組的賦值機(jī)制int[] arr1 = {1,2,3};
int[] arr2 = arr1;
arr2[0] = 10;
//賦值方式是引用賦值,arr2的變換會(huì)影響到arr1.
System.out.println("arr1的元素為:");
for (int i = 1; i< arrays.length; i++ ) {System.out.println(arr1[i]);
}
一維數(shù)組的JVM內(nèi)存布局? 值傳遞 / 值拷貝和引用傳遞 / 地址拷貝的區(qū)別:
? 值傳遞的時(shí)候相當(dāng)于值拷貝,將原先的數(shù)值拷貝的一份,與之前的數(shù)據(jù)互不影響。
? 數(shù)組指向的是一個(gè)地址,引用傳遞的時(shí)候指向的一個(gè)地址,在傳遞的時(shí)候只是將地址復(fù)制了一份。
?
int[] arr1 = {10.20.30};
int[] arr2 = new int[arr1.length];//arr2重新開辟了新的空間,與之前的地址互不影響
public class array03 {public static void main(String[] args) {//數(shù)組交換
int[] arrs = {11, 22, 33, 44, 55, 66};
int a = 0;
int len = arrs.length;
for (int i = 0; i< len / 2; i++) {a = arrs[len - i - 1];
arrs[len - i - 1] = arrs[i];
arrs[i] = a;
}
System.out.println("數(shù)組倒序排列后的結(jié)果如下:");
for (int i = 0; i< arrs.length; i++) {System.out.print(arrs[i] + " ");
}
}
}
public class array04 {public static void main(String[] args) {//數(shù)組的擴(kuò)容
int[] arr = {1, 2, 3};
int[] arrNew = new int[arr.length + 1]; //定義一個(gè)新數(shù)組
for (int i = 0; i< arr.length ; i++ ) {arrNew[i] = arr[i];
}
arrNew[arrNew.length - 1] = 4;
arr = arrNew;
System.out.println("數(shù)組擴(kuò)容后的結(jié)果如下:");
for (int i = 0; i< arr.length; i++) {System.out.print(arr[i] + " ");
}
}
}
import java.util.Scanner;
public class array05 {public static void main(String[] args) {//動(dòng)態(tài)數(shù)組的擴(kuò)容,每次在最后添加一個(gè)元素
Scanner lll = new Scanner(System.in);
int[] arr = {1, 2, 3};
do {int[] arrNew = new int[arr.length + 1]; //定義一個(gè)新數(shù)組
for (int i = 0; i< arr.length ; i++ ) {arrNew[i] = arr[i];
}
System.out.println("請(qǐng)輸入您要添加的元素:");
int add1 = lll.nextInt();
arrNew[arrNew.length - 1] = add1;
arr = arrNew;
System.out.println("數(shù)組擴(kuò)容后的結(jié)果如下:");
for (int i = 0; i< arr.length; i++) {System.out.print(arr[i] + " ");
}
System.out.println("");
System.out.println("您是否還要繼續(xù)添加(y/n):");
char add2 = lll.next().charAt(0);
if ( add2 == 'n') {break;
} else if (add2 == 'y') {continue;
} else {System.out.println("您輸入的語法錯(cuò)誤?。?!");
break;
}
} while (true);
System.out.println("程序結(jié)束");
}
}
import java.util.Scanner;
public class array06 {public static void main(String[] args) {//數(shù)組的動(dòng)態(tài)縮減
//有一個(gè)數(shù)組{1,2,3,4,5},可以將該數(shù)組進(jìn)行縮減,提示用戶能否繼續(xù)進(jìn)行縮減,每次縮減最后的元素,當(dāng)只剩下最后的一個(gè)元素,提示,不能在進(jìn)行縮減,
Scanner lll = new Scanner(System.in);
int[] arr = {1, 2, 3, 4, 5};
System.out.println("您最初的數(shù)組是{1,2,3,4,5}");
do {System.out.println("您是否要繼續(xù)縮減(y/n):");
char add2 = lll.next().charAt(0);
if ( add2 == 'n') {break;
} else if (add2 == 'y') {if (arr.length == 1) {System.out.println("數(shù)組長度達(dá)到最小值,不能再進(jìn)行縮減?。?!");
break;
}
int[] arrNew = new int[arr.length - 1]; //定義一個(gè)新數(shù)組
for (int i = 0; i< arrNew.length ; i++ ) {arrNew[i] = arr[i];
}
arr = arrNew;
System.out.println("數(shù)組縮減后的結(jié)果如下:");
for (int i = 0; i< arr.length; i++) {System.out.print(arr[i] + " ");
}
System.out.println("");
} else {System.out.println("您輸入的語法錯(cuò)誤?。?!");
break;
}
} while (true);
System.out.println("程序結(jié)束");
}
}
冒泡排序? 原理:通俗的來講就是兩個(gè)兩個(gè)重復(fù)多輪的進(jìn)行比較,每執(zhí)行一輪排序就能進(jìn)行得到一個(gè)結(jié)果數(shù)。
? 特點(diǎn):
public class bubble_order {public static void main(String[] args) {//冒泡排序(從大到小排列)
int[] arr = {24, 69, 80, 57, 13};
int aaa = 0;
for (int i = 0 ; i< arr.length - 1 ; i++ ) {for (int j = 0; j< arr.length - 1 - i ; j++) {if (arr[j] >arr[j + 1]) {aaa = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = aaa;
}
}
}
System.out.println("冒泡排序后的結(jié)果為:");
for (int k = 0; k< arr.length; k++) {System.out.print(arr[k] + " ");
}
}
}
public class bubble_order2 {public static void main(String[] args) {//冒泡排序(從小到大排列)
int[] arr = {24, 69, 80, 57, 13};
int aaa = 0;
for (int i = 0 ; i< arr.length - 1 ; i++ ) {for (int j = 0; j< arr.length - 1 - i ; j++) {if (arr[j]< arr[j + 1]) {//這里改個(gè)符號(hào)即可從小到大進(jìn)行排列
aaa = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = aaa;
}
}
}
System.out.println("冒泡排序后的結(jié)果為:");
for (int k = 0; k< arr.length; k++) {System.out.print(arr[k] + " ");
}
}
}
查找import java.util.Scanner;
public class inquire {public static void main(String[] args) {//查找
String[] names = {"狗子", "猴子", "胖子", "瘦子", "絕絕子"};
Scanner lll = new Scanner(System.in);
System.out.println("請(qǐng)輸入您要查詢的名字");
String findName = lll.next();
int tag = 0;//設(shè)置標(biāo)記
for (int i = 0; i< names.length ; i++ ) {if (findName.equals(names[i])) {System.out.println("恭喜找到:" + findName);
System.out.println("下標(biāo)為:" + i);
tag = 1;
break;
}
}
if (tag == 0) {System.out.println("對(duì)不起,沒有找到名字:" + findName);
}
}
}
二維數(shù)組import java.util.Scanner;
public class array07 {public static void main(String[] args) {//輸出一個(gè)二維數(shù)組
int[][] arr = { {1, 2, 3, 4, 5, 6},
{1, 2, 3, 4, 5},
{1, 2, 3, 4},
{1, 2, 3}
};
System.out.println("輸出的二維數(shù)組的結(jié)果如下:");
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(" ");
}
}
}
import java.util.Scanner;
public class array08 {public static void main(String[] args) {//二維數(shù)組的使用,動(dòng)態(tài)數(shù)組賦值并輸出
Scanner lll = new Scanner(System.in);
int arr[][];//聲明二維數(shù)組
arr = new int[2][3];//開辟數(shù)組空間,2行3列的二維數(shù)組。
for (int i = 0; i< arr.length ; i++ ) { System.out.println("現(xiàn)在輸入數(shù)組的第" + i + "行數(shù)據(jù)");
for (int j = 0; j< arr[i].length ; j++ ) { System.out.println("輸入第" + j + "列數(shù)據(jù)");
int a = lll.nextInt();
arr[i][j] = a;
}
}
System.out.println("您輸入的數(shù)組的結(jié)果如下:");
for (int h = 0; h< arr.length ; h++ ) { for (int k = 0; k< arr[h].length ; k++ ) { System.out.print(arr[h][k] + " ");
}
System.out.println(" ");
}
}
}
import java.util.Scanner;
public class array09 {public static void main(String[] args) {//二維數(shù)組的使用,輸出二維數(shù)組的第一行為1,第二行為兩個(gè)2,第三行為3個(gè)3,以此類推。
Scanner lll = new Scanner(System.in);
System.out.println("您要輸出幾行:");
int i = lll.nextInt();
int[][] arr = new int[i][];
for (int j = 0; j< arr.length ; j++ ) { arr[j] = new int[j + 1];//第0層有1個(gè)空間,第1層有兩個(gè)空間。
for (int k = 0; k< arr[j].length ; k++ ) { arr[j][k] = j + 1;//第一層的j等于0,所以要想每層都是對(duì)應(yīng)層數(shù)的話,就需要進(jìn)行加1
}
}
System.out.println("您輸入的數(shù)組的結(jié)果如下:");
for (int m = 0; m< arr.length ; m++ ) { for (int n = 0; n< arr[m].length ; n++ ) { System.out.print(arr[m][n] + " ");
}
System.out.println(" ");
}
}
}
import java.util.Scanner;
public class array10 {public static void main(String[] args) {//二維數(shù)組的使用,動(dòng)態(tài)數(shù)組賦值并輸出
Scanner lll = new Scanner(System.in);
int arr[][];//聲明二維數(shù)組
arr = new int[3][3];//開辟數(shù)組空間,3行3列的二維數(shù)組
for (int i = 0; i< arr.length ; i++ ) { System.out.println("現(xiàn)在輸入數(shù)組的第" + i + "行數(shù)據(jù)");
for (int j = 0; j< arr[i].length ; j++ ) { System.out.println("輸入第" + j + "列數(shù)據(jù)");
int a = lll.nextInt();
arr[i][j] = a;
}
}
int sum = 0;
System.out.println("您輸入的數(shù)組的結(jié)果如下:");
for (int h = 0; h< arr.length ; h++ ) { for (int k = 0; k< arr[h].length ; k++ ) { System.out.print(arr[h][k] + " ");
sum += arr[h][k];
}
System.out.println(" ");
}
System.out.println("您輸入的數(shù)據(jù)總和為:" + sum);
}
}
import java.util.Scanner;
public class YangHui {public static void main(String[] args) {//打印楊輝三角
Scanner lll = new Scanner(System.in);
System.out.println("您要輸出幾層楊輝三角:");
int a = lll.nextInt();
int[][] yanghui = new int[a][];
for (int i = 0 ; i< yanghui.length ; i++) { yanghui[i] = new int[i + 1]; //開辟新的空間。
for (int j = 0 ; j< yanghui[i].length ; j++ ) { if (j == 0 || j == yanghui[i].length - 1) {yanghui[i][j] = 1;
} else {yanghui[i][j] = yanghui[i - 1][j - 1] + yanghui[i - 1][j];
}
}
}
System.out.println("輸出結(jié)果如下:");
for (int k = 0; k< yanghui.length ; k++ ) { for (int l = 0 ; l< yanghui[k].length ; l++) { System.out.print(yanghui[k][l] + " ");
}
System.out.println(" ");
}
}
}
import java.util.Scanner;
public class array11 {public static void main(String[] args) {//已知有一個(gè)升序的數(shù)組,要求插入一個(gè)元素,該數(shù)組的順序依然是升序的,比如{10,12,45,90},添加23后,數(shù)組為{10,12,23,45,90}
Scanner lll = new Scanner(System.in);
System.out.println("請(qǐng)先輸入原始數(shù)組有幾個(gè)數(shù)字(輸入數(shù)字即可):");
int a = lll.nextInt();
int[] arr = new int[a];
int pt = 0;
for (int i = 0 ; i< arr.length ; i++ ) { System.out.println("請(qǐng)輸入第" + (i + 1) + "個(gè)數(shù)");
arr[i] = lll.nextInt();
}
System.out.println("您輸出數(shù)組的結(jié)果如下:");
for (int j = 0; j< arr.length ; j++ ) { System.out.print(arr[j] + " ");
}
System.out.println(" ");
//這里如果要對(duì)初始化的數(shù)組進(jìn)行怕排序,可以使用冒泡排序進(jìn)行。
System.out.println("請(qǐng)輸入您要插入的元素");
int insert_element = lll.nextInt();
int index = 0;
for (int m = 0; m< arr.length; m++ ) { if (insert_element< arr[m]) { index = m;
break;
}else{ index = arr.length;
}
}
int[] b = new int[arr.length + 1];
for (int n = 0; n< b.length ; n++) { if (n == index) { b[n] = insert_element;
} else if (n >index) { b[n] = arr[n - 1];
} else if (n< index) { b[n] = arr[n];
}
}
for (int k = 0; k< b.length ; k++) { System.out.print(b[k] + " ");
}
}
}
public class array12 {public static void main(String[] args) {//隨機(jī)生成10個(gè)整數(shù)(1-100),保存到數(shù)組,并倒序打印以及求平均值,求大值和最小值的下標(biāo),并查找里面是否含有8.
int[] arr = new int[10];
for (int i = 0; i< arr.length ; i++) { arr[i] = (int)(Math.random() * 100) + 1;
}
int sum = 0;
int tag = 0;
System.out.println("數(shù)組的正序輸出如下:");
for (int m = 0; m< arr.length ; m++ ) { System.out.print(arr[m] + "\t");
}
System.out.println(" ");
System.out.println("數(shù)組的倒序輸出如下:");
for (int j = arr.length - 1; j >= 0 ; j--) { if (arr[j] == 8) { tag = 1;//若含有8的話,則置為1;
}
sum += arr[j];
System.out.print(arr[j] + "\t");//"\t"相當(dāng)與空4個(gè)空格,一個(gè)tab鍵。
}
System.out.println(" ");
System.out.println("平均值為:" + (int)(sum / arr.length));
int max = arr[0];
int min = arr[0];
int max_sub = 0;//大值的下標(biāo)
int min_sub = 0;//最小值的下標(biāo)
for (int k = 0; k< arr.length ; k++) { if (arr[k] >max) { max_sub = k;
max = arr[k];
}
if (arr[k]< min) { min_sub = k;
min = arr[k];
}
}
if (tag == 1) { System.out.println("是否含有8:" + "True");
} else { System.out.println("是否含有8:" + "False");
}
System.out.println("大值下標(biāo)為:" + max_sub);
System.out.println("最小值下標(biāo)為:" + min_sub);
}
}
二維數(shù)組的JVM內(nèi)存布局二維數(shù)組的使用細(xì)節(jié)一維數(shù)組的聲明方式有:int[ ] x 或者 int x[ ];
二維數(shù)組的聲明方式有:int[][] y 或者int[] y[] 或者 int y[][]
二維數(shù)組實(shí)際上是由多個(gè)一維數(shù)組組成的,它的每個(gè)一維數(shù)組的長度可以相同也可以不相同。
比如:arr[][] = {{1,2},{1,2,3,4}}
布爾類型的數(shù)值未賦值之前默認(rèn)為false。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站題目:(四)java中數(shù)組的使用-創(chuàng)新互聯(lián)
鏈接地址:http://muchs.cn/article8/ceehop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作、自適應(yīng)網(wǎng)站、企業(yè)建站、網(wǎng)站導(dǎo)航、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容