java中一維數(shù)組如何使用

java中一維數(shù)組如何使用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,松嶺企業(yè)網(wǎng)站建設,松嶺品牌網(wǎng)站建設,網(wǎng)站定制,松嶺網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,松嶺網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

一維數(shù)組

1.一維數(shù)組的定義方式:

int[] array1 = new int[3];//聲明創(chuàng)建一個包含3個元素的數(shù)組array1(初始值為0)int[] array2 = {1, 2, 3};//聲明、創(chuàng)建并初始化一個包含3個元素的數(shù)組int[] array3 = new int[] {1, 2, 3};//聲明、創(chuàng)建并初始化一個包含3個元素的整型數(shù)組int[] array4;array[4] = {1, 2, 3}//先聲明一個數(shù)組array,再進行創(chuàng)建及初始化int[] array5 = new int[3];array5[0] = 1;array5[1] = 2;array5[2] = 3;//先聲明、創(chuàng)建一個具有3個元素的數(shù)組,再用賦值語句進行初始化

2.利用一維數(shù)組輸出斐波那契數(shù)列的前20項

public static void fib(int[] array) {    array[0] = 1;    array[1] = 1;    for (int i = 2; i < array.length; i++) {      array[i] = array[i - 1] + array[i - 2];    }    System.out.println(Arrays.toString(array));}//記得在主函數(shù)中創(chuàng)建array數(shù)組

題目練習

1.實現(xiàn)二分查找算法:有序的數(shù)組

public class TestDemo1 {  public static int binary(int[] array, int key) {//key為要查找的數(shù)    Arrays.sort(array);//正序排列數(shù)組    System.out.println("由從小到大順序排列數(shù)組:" + Arrays.toString(array));    int left = 0;    int right = array.length - 1;//將數(shù)組最小下標與最大下標分別賦值給left和right    int mid = 0;//將中值初始化    while (left <= right) {//“=”條件防止當輸入的值為數(shù)組最大下標指向的數(shù)時,不進入循環(huán),而返回-1的情況      mid = (left + right) / 2;//二分法原理為折半查找,故中間值為左右下標之和除以2      if (key == array[mid]) {//如果第一次中間下標指向的值正好等于要查找的值,返回該下標        return mid;      } else if (key > array[mid]) {//如果如果輸入的值大于中間下標指向的值,則將當前中值下標作為下一次循環(huán)的左下標        left = mid + 1;/*“+1”的含義:防止輸入的值為數(shù)組最大下標指向的值,當進行二分查找最后一步時,因為mid為int類型,所以會導        致左邊下標不在發(fā)生變化,所以要+1;當+1時,左邊下標變?yōu)樯弦淮沃兄迪聵说暮笠晃唬挥绊懘朔椒ǖ恼_性,還可以減少計算步驟*/      } else {//只剩下輸入的數(shù)下標小于中值下標的情況,將當前中值下標作為下次循環(huán)的右下標        right = mid - 1;//與“+1”含義類似,防止輸入的數(shù)對應的為最右下標      }    }    return -1;//在數(shù)組中找不到輸入的數(shù),返回-1  }    public static void main(String[] args) {    int[] array = {22, 15, -46, 35, 69, 20};    System.out.println("請輸入你想查找的數(shù)字:");    Scanner scanner = new Scanner(System.in);    int key = scanner.nextInt();    System.out.println(binary(array, key));     }}

2.求連續(xù)子數(shù)組的最大和

public class TestDemo1 {public static void sumArray(int[] array) {    int sum = array[0];//對數(shù)組求和的變量    int max = array[0];//求和最大值的變量    for (int i = 1; i < array.length; i++) {//從第一項開始循環(huán)      if (sum + array[i] < array[i]) {//如果前幾項的和與本項之和小于本項,則最大連續(xù)子數(shù)組的和肯定不包括前幾項        sum = array[i];//將本項的值賦給sum,之后的循環(huán)求和從本項依次向后相加      } else {        sum = sum + array[i];//如果前幾項的和與本項之和大于本項,則繼續(xù)向后執(zhí)行遞加操作      }      if (sum >= max) {//每次相加之后與初始的max值相比較,如果和大于max的值,則更新max,最后返回的max值即為最大連續(xù)子數(shù)列的和        max = sum;      }    }    System.out.println("連續(xù)子數(shù)組最大和為:" + max);  }   public static void main(String[] args) {    int[] array = {1, -2, 3, 10, -4, 7, 2, -5};    sumArray(array);      }}

3.交換兩個數(shù)

public class TestDemo1 {public static void swap(int a,int b) {int tmp = 0;tmp = a;a = b;b = tmp;    }  public static void main(String[] args) {int a = 10;int b = 20;swap(a,b);System.out.println(a);System.out.println(b);    }}

用上面寫的方法在執(zhí)行交換兩個數(shù)操作數(shù)會出現(xiàn)錯誤,原因:

在主函數(shù)中swap(a,b)操作實際是將實參a,b的地址拷貝到swap方法中,即傳址。在swap方法中進行數(shù)值交換操作時只是交換了該方法中形參的地址,而原本實參的地址并沒有改變,所以輸出的a,b值沒有發(fā)生改變。

Java中的基本元素不支持傳址,必須是對象或者數(shù)組才能傳址

可作如下修改

class MyVlue {  int data;}public class TestDemo1 {  public static void swap(MyVlue myVlue,MyVlue myVlue2) {    int tmp = myVlue.data;    myVlue.data = myVlue2.data;    myVlue2.data = tmp;  }      public static void main(String[] args) {       MyVlue myVlue = new MyVlue();    myVlue.data = 10;    MyVlue myVlue2 = new MyVlue();    myVlue2.data = 20;    swap(myVlue,myVlue2);    System.out.println(myVlue.data);    System.out.println(myVlue2.data);      }}//新建對象進行數(shù)值的交換,交換的是實參

4.逆置數(shù)組

public class TestDemo1 {   public static void invertArray(int[] array) {    System.out.println("輸出該數(shù)組:" + Arrays.toString(array));    for (int front = 0, end = array.length - 1; front < end; front++, end--) {//循環(huán)將數(shù)組下標由第一項遞增,最后一項遞減,當遞增的下標超過遞減的下標時,結束循環(huán)      int temp = array[front];//將數(shù)組的第一個元素臨時賦值給變量temp      array[front] = array[end];//將數(shù)組最后的元素賦值到數(shù)組的第一個元素      array[end] = temp;//將temp的值賦給數(shù)組最后的元素,實現(xiàn)數(shù)組下標不變,但元素的值進行倒置的操作    }    System.out.println("將該數(shù)組倒置后輸出:" + Arrays.toString(array));  }  public static void main(String[] args) {    int[] array = {1, 2, 3, 4, 5};    invertArray(array);  }}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

文章名稱:java中一維數(shù)組如何使用
文章地址:http://m.kartarina.com/article48/pihghp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站用戶體驗網(wǎng)站收錄微信小程序網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
主站蜘蛛池模板: 亚洲AV无码国产剧情| 亚洲AV无码专区国产乱码电影| 精品国产a∨无码一区二区三区 | 久久精品无码专区免费东京热| 亚洲av无码成人影院一区| 亚洲中文字幕无码日韩| 亚洲AV无码专区在线观看成人| 日韩av无码中文无码电影| 亚洲中文无码a∨在线观看| 亚洲日韩VA无码中文字幕| 无码八A片人妻少妇久久| 国产在线无码一区二区三区视频| 亚洲AV无码一区二区乱子仑| 人妻无码视频一区二区三区 | 无码av最新无码av专区| 亚洲av无码乱码在线观看野外| 人妻无码久久一区二区三区免费| 亚洲乱亚洲乱少妇无码| 无码人妻精品一区二区三区久久久| 亚洲精品无码Av人在线观看国产 | 久久久久无码专区亚洲av| 亚洲熟妇无码一区二区三区导航| 国产在线无码不卡影视影院 | 在人线av无码免费高潮喷水| 国产成人AV片无码免费| 波多野结衣AV无码久久一区 | 久久精品日韩av无码| 无码国内精品人妻少妇| 亚洲精品高清无码视频 | 亚洲∧v久久久无码精品| 东京热av人妻无码专区| 熟妇人妻系列aⅴ无码专区友真希| 亚洲av无码天堂一区二区三区| 亚洲成?v人片天堂网无码| 无码国模国产在线无码精品国产自在久国产| 亚洲中文字幕无码av| 丰满少妇被猛烈进入无码| 国产午夜激无码av毛片| av无码aV天天aV天天爽| a级毛片无码免费真人久久| 亚洲AV日韩AV高潮无码专区|