日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组

發(fā)布時間:2024/8/26 java 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

整篇文章為對java數(shù)組的完整理解以及部分排序,并有一些簡單的demo,經(jīng)典的案例與藍(lán)橋杯的一些經(jīng)典數(shù)組題有專門的文章梳理。

目錄

數(shù)組概述

什么是數(shù)組

數(shù)組的結(jié)構(gòu)

數(shù)組的特點:

數(shù)組分類

一維數(shù)組聲明與賦值

數(shù)組的常用屬性與方法

數(shù)組的遍歷

一維數(shù)組demo案例

數(shù)組隨機(jī)賦值

?選擇排序

冒泡排序

增強(qiáng)for循環(huán)

二維數(shù)組聲明

二維數(shù)組練習(xí)題:

交叉數(shù)組

交叉數(shù)組遍歷

總結(jié):


數(shù)組概述

什么是數(shù)組

單個變量能存儲信息。

如果有批量數(shù)據(jù)需要存儲,單個變量存儲時間和空間上不經(jīng)濟(jì)和實用,而且過于麻煩,這時候需要用數(shù)組這一引用數(shù)據(jù)類型來存儲。

數(shù)組: 用來存儲具有相同數(shù)據(jù)類型的數(shù)據(jù)的集合,可以使用共同的名字來引用數(shù)組中存儲的數(shù)據(jù)。

特點: 數(shù)組可以存儲任何類型的數(shù)據(jù),包括原始數(shù)據(jù)類型和引用數(shù)據(jù)類型,但是一旦指定了數(shù)組的類型之后,就只能用來存儲指定類型的數(shù)據(jù)。

數(shù)組的結(jié)構(gòu)

數(shù)組是一個變量,用于將相同數(shù)據(jù)類型的數(shù)據(jù)存儲在內(nèi)存空間中,數(shù)組中的所有元素必須屬于相同的數(shù)據(jù)類型。

棧(stack)與堆(heap)都是Java用來在Ram(隨機(jī)存取存儲器)中存放數(shù)據(jù)的地方。

與C++不同,Java自動管理棧和堆,程序員不能直接地設(shè)置棧或堆。

棧的優(yōu)勢是,存取速度比堆要快,僅次于直接位于CPU中的寄存器。但缺點是,存在棧中的數(shù)據(jù)大小與生存期必須是確定的,缺乏靈活性。另外,棧數(shù)據(jù)在多個線程或者多個棧之間是不可以共享的,但是在棧內(nèi)部多個值相等的變量是可以指向一個地址的,堆的優(yōu)勢是可以動態(tài)地分配內(nèi)存大小,生存期也不必事先告訴編譯器,Java的垃圾收集器會自動收走這些不再使用的數(shù)據(jù)。但缺點是,由于要在運行時動態(tài)分配內(nèi)存,存取速度較慢。

數(shù)組為了在內(nèi)存中能夠存取多個數(shù)據(jù)更加方便,在設(shè)計數(shù)組時,數(shù)組的結(jié)構(gòu)和基本要素都與生活中的電子儲物柜非常類似。

數(shù)組的特點:

  • 同一個數(shù)組中的數(shù)組元素必須具有相同的數(shù)據(jù)類型,且在內(nèi)存中連續(xù)分布。
  • 無論數(shù)組中包含多少個數(shù)組元素,該數(shù)組只存在一個名稱,即數(shù)組名。
  • 數(shù)組元素的編號稱為下標(biāo),數(shù)組的下標(biāo)從0 開始 可以通過“數(shù)組名[ 下標(biāo)]”的方式訪問數(shù)組中的任何元素。
  • 數(shù)組的長度指數(shù)組可以存儲元素的最大個數(shù),在創(chuàng)建數(shù)組時確定。
  • 數(shù)組分類

    在Java語言中,存在多種形式的數(shù)組。

    ?

    一維數(shù)組聲明與賦值

    ?

    ?

    ?

    int [] array;//整數(shù)數(shù)組 int array[]= new int[10]; int[] array= new int[10];

    數(shù)組的常用屬性與方法

    int[] array= new int[10]; //數(shù)組的長度 array.length; //自然排序 Arrays.sort(array)

    數(shù)組的遍歷

    int [] a=new int[10]; for (int i = 0; i < a.length; i++) {a[i]=i+1; } for (int i = 0; i < a.length; i++) {System.out.print(a[i]+","); }

    一維數(shù)組demo案例

    ?? ? 問題描述:輸入本部門5位員工的薪資,并根據(jù)用戶輸入的序號為指定員工進(jìn)行提薪。若用戶輸入序號出現(xiàn)越界,則提示錯誤。要求:薪資的漲幅不能超過原薪資的20%,若漲幅超過20%,則按照原薪資的20%進(jìn)行提薪。

    數(shù)組隨機(jī)賦值

    package Action;import java.util.Random;public class demos {public static void main(String[] args) {// 聲明隨機(jī)數(shù)Random ra = new Random();int[] arrays = new int[10];// 賦值for (int i = 0; i < arrays.length; i++) {arrays[i] = ra.nextInt(50);}// 遍歷for (int i = 0; i < arrays.length; i++) {System.out.print(arrays[i] + ",");}} }

    算法中經(jīng)常會用到某個班級、某個公司、某個集體中隨機(jī)選某些人,或者棋牌類游戲進(jìn)行棋牌的分發(fā),彩票的出獎,紅包隨機(jī)分發(fā)匹配人員等操作。 所以,我們需要使用一定的算法進(jìn)行獲取一定數(shù)量的不重復(fù)的隨機(jī)數(shù)數(shù)組。?

    選擇排序

    package Action;public class demos {public static void main(String[] args) {int count = 0;int[] arr = { 9, 12, 31, 123, 54, 3, 24, 324, 2345, 342 };for (int i = 0; i < arr.length; i++) {// 前者循環(huán)次數(shù)for (int j = 0; j < arr.length; j++) {// 后者循環(huán)次數(shù)if (arr[i] > arr[j]) {// 如果i>j就是ture,【1】>【2】int change = arr[i];// 賦值給change,告訴change,i多大arr[i] = arr[j];// arr[j]賦值給arr[i],換位置arr[j] = change;// change賦值給arr[j],進(jìn)行下一輪比較}count++;}}for (int j2 = 0; j2 < arr.length; j2++) {System.out.print(arr[j2] + ",");}System.out.println("\n循環(huán)次數(shù):" + count);// 100次循環(huán)} }

    冒泡排序

    package Action;public class demos {public static void main(String[] args) {int count = 0;int[] arr = { 9, 12, 31, 123, 54, 3, 24, 324, 2345, 342 };for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1 - i; j++) {// 循環(huán)次數(shù)遞減if (arr[j] < arr[j + 1]) {// 從大到小排列int change = arr[j];arr[j] = arr[j + 1];arr[j + 1] = change;// 值交換}count++;}}for (int j2 = 0; j2 < arr.length; j2++) {System.out.print(arr[j2] + ",");}System.out.println("\n循環(huán)次數(shù):" + count);// 45次循環(huán)} }

    增強(qiáng)for循環(huán)

    int nums[] = {1,2,3,4,5,6}; for(int num : nums) {System.out.println(num); }

    二維數(shù)組聲明

    二維數(shù)組的創(chuàng)建同樣有兩種方式

    方式一:

    使用new 類型[][]數(shù)組名= new 類型[行數(shù)][列數(shù)];

    String [][]str = new String[5][5];

    方式二:

    聲明數(shù)組并且賦初始值

    int [][] array = {{23,45,45},{12,11,10},{23,12,56}};

    二維數(shù)組練習(xí)題:

    計算二維整數(shù)數(shù)組兩條對角線的值的總和。?

    int[][] x1 = {{ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, { 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },{ 1, 2, 3, 4, 5, 6, 7, 8, 9 },};

    交叉數(shù)組

    int[][] arrays = {{ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, { 1, 2, 3, 4, 5, 6},{ 1, 2, 3, 4, 5, 6, 7 },{ 1, 2, 3, 4, 5, 6},{ 1, 2, 3, 4 },{ 1, 2, 3, 4, 5 },{ 1, 2},{ 1, 2, 3, 4, 5, 6, 7, 8 },{ 1 },};

    交叉數(shù)組遍歷

    //交叉數(shù)組遍歷 for (int i = 0; i < arrays.length; i++) {for (int j = 0; j < arrays[i].length; j++) {System.out.print(arrays[i][j]+",");}System.out.println();}

    總結(jié):

    數(shù)組:一組數(shù)據(jù)

    數(shù)組能存儲所有數(shù)據(jù)類型的數(shù)據(jù)

    同一個數(shù)組的所有數(shù)據(jù)必須是同一類型

    ?數(shù)組的長度固定,不能改變

    數(shù)組有一個屬性:length

    數(shù)組對象.length;

    數(shù)組的長度

    分類:一維數(shù)組和多維數(shù)組

    數(shù)組的使用

    第一步:聲明數(shù)組變量

    數(shù)據(jù)類型 [] 數(shù)組變量名;如:int [] a; ??

    第二步:創(chuàng)建數(shù)組對象 ?? ??? ?

    new 數(shù)據(jù)類型[所要創(chuàng)建的數(shù)組的長度]; ?? ?

    如:new int[5]; ?? ?

    第三步:給數(shù)組元素賦值 ?? ??? ?

    數(shù)組變量名[下標(biāo)]=1; ?? ?

    如:int[] a=new int[5]; ?? ??? ?a[0]=1; ?? ?

    第四步:訪問數(shù)組的元素 ?? ??? ?

    int max=a[0];?? ?//數(shù)組元素的使用,作為數(shù)據(jù),給其他變量賦值

    System.out.println(a[0]);//把數(shù)組元素保存的數(shù)據(jù)打印輸出

    總結(jié)

    以上是生活随笔為你收集整理的【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。