溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java數(shù)組常見應(yīng)用有哪些

發(fā)布時(shí)間:2021-11-05 10:10:12 來(lái)源:億速云 閱讀:145 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“Java數(shù)組常見應(yīng)用有哪些”,在日常操作中,相信很多人在Java數(shù)組常見應(yīng)用有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java數(shù)組常見應(yīng)用有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

雙重for循環(huán)

外循環(huán)控制行,內(nèi)循環(huán)控制列。

//乘法表for(int i = 1; i <= 9; i++) {  for(int j = 1; j <= i ;j++) {   System.out.print(j+"*"+i+"="+(i*j)+"\t");  }  System.out.println();}

DecimalFormat

#:一個(gè)數(shù)字

0:一個(gè)數(shù)字,不夠位數(shù)用0補(bǔ)位

DecimalFormat f = new DecimalFormat("###.##");DecimalFormat f = new DecimalFormat("000.00000");System.out.println(sum);System.out.println(f.format(sum));System.out.println(f.format(34.567));

break

用在 switch和循環(huán)中。用在單層循環(huán)中,用來(lái)結(jié)束循環(huán)。

continue

用在循環(huán)中。作用 結(jié)束本次循環(huán)進(jìn)行下一次循環(huán)條件判斷。

對(duì)于雙重循環(huán),可以自定義一個(gè)標(biāo)簽,break或continue 到標(biāo)簽處。

一維數(shù)組

Java 語(yǔ)言中提供的數(shù)組是用來(lái)存儲(chǔ)固定大小的同類型元素。

聲明數(shù)組

首先必須聲明數(shù)組變量,才能在程序中使用數(shù)組。下面是聲明數(shù)組變量的語(yǔ)法:

int[] arr;//聲明數(shù)組,告訴計(jì)算機(jī)我要存儲(chǔ)一組整數(shù)(推薦)或//int arr[];

int x1,x2,x3;//聲明了3個(gè)int類型的變量int [] n1,n2,n3;//聲明了3個(gè)數(shù)組int num1 [],num2,num3;//聲明了一個(gè)int類型的數(shù)組num1,兩個(gè)Int類型的變量。

創(chuàng)建數(shù)組

arr = new int[6];//創(chuàng)建一個(gè)數(shù)組,計(jì)算機(jī)在內(nèi)存中分配6個(gè)空間,并初始化

數(shù)組的元素是通過(guò)索引訪問(wèn)的。數(shù)組索引從 0 開始,所以索引值從 0 到 arr.length-1。

數(shù)組初始化

//動(dòng)態(tài)初始化:我們制定長(zhǎng)度,系統(tǒng)賦值。int[] arr = new int[5];//0//初始值//整數(shù):0  小數(shù):0.0  布爾:false  char:000  //String:null  //靜態(tài)初始化:我們賦值,系統(tǒng)分配長(zhǎng)度(arr2.length)int[] arr2 = {11,22,33};

賦值數(shù)組

arr[2]=33;

棧stack

是作為構(gòu)思算法的輔助工具,不是完全的數(shù)據(jù)存儲(chǔ)工具。是插入和刪除操作被限制在表的線性表。只能從棧頂入棧,也只能從棧頂出站是一種后進(jìn)先出的結(jié)構(gòu)

遍歷數(shù)組

普通for循環(huán)

public class TestArray { public static void main(String[] args) {  double[] myList = {1.9, 2.9, 3.4, 3.5};  // 打印所有數(shù)組元素  for (int i = 0; i < myList.length; i++) {   System.out.println(myList[i] + " ");  }  // 計(jì)算所有元素的總和  double total = 0;  for (int i = 0; i < myList.length; i++) {   total += myList[i];  }  System.out.println("Total is " + total);  // 查找最大元素  double max = myList[0];  for (int i = 1; i < myList.length; i++) {   if (myList[i] > max) max = myList[i];  }  System.out.println("Max is " + max); }}

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

public class TestArray { public static void main(String[] args) {  double[] myList = {1.9, 2.9, 3.4, 3.5};  // 打印所有數(shù)組元素  for (double element: myList) {   System.out.println(element);  } }}

增強(qiáng)for循環(huán)的特點(diǎn):

【1】簡(jiǎn)潔

【2】不能制定范圍訪問(wèn),只能訪問(wèn)全部

【3】不能反轉(zhuǎn)輸出,只能正序訪問(wèn)

【4】不能修改數(shù)組元素的值

數(shù)組排序

冒泡排序

package day4;public class Demo12 { public static void main(String[] args) {  // 冒泡排序  int[] arr = {34,1,78,9,43};  int temp;  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]) {     temp = arr[j];     arr[j]= arr[j + 1];     arr[j + 1] = temp;    }   }  }  for(int n: arr) {   System.out.println(n);  } }}

選擇排序

package day4;import java.util.Arrays;public class Demo13 { public static void main(String[] args) {  // 選擇排序  int [] arr = {5,12,3,78,345};  int temp;  for(int i = 0; i < arr.length-1; i++) {//位置   for(int j = i + 1; j < arr.length; j++) {    if(arr[i] > arr[j]) {     temp = arr[i];     arr[i] = arr[j];     arr[j] = temp;    }   }  }  for(int n:arr) {   System.out.println(n);  }//  System.out.println(Arrays.toString(arr)); }}

數(shù)組查找方法

普通查找方法(效率比較低)

public class ArrayTest { public static void main(String[] args) {  // TODO Auto-generated method stub  int[] arr = {4,6,8,33,66,44,99,54};  int num=searchKey(arr,66);  System.out.println(num); } //查找一個(gè)元素在數(shù)組中的第一次出現(xiàn)的位置 public static int searchKey(int[] arr,int key) {  for(int i=0;i

二分查找法(效率比較高)

public class binarySearch { public static void main(String[] args) {  int[] arr = {9,12,15,24,36,41,59,68};  int num =searchArray(arr,12);  System.out.println(num); } //二分查找。前天:數(shù)組必須是有序的。 /*  * 思路:  * 1.通過(guò)角標(biāo)先獲取中間角標(biāo)上的元素  * 2.讓該元素和要找的數(shù)據(jù)比較。  * 3.如果要找的數(shù)大了,縮小范圍,要找的范圍應(yīng)該是 中間的角標(biāo)+1---尾角標(biāo)  * 如果要找的數(shù)效率,要找的范圍 頭角標(biāo)---中間角標(biāo)-1。  * 4.不斷如此重復(fù),就可以找到元素對(duì)應(yīng)的角標(biāo)。  * */ public static int searchArray(int[] arr,int key) {  int max,min,mid;  min = 0;  max = arr.length-1;  mid = (min+max)>>1;  while(arr[mid]!=key) {   if(key > arr[mid]) {    min = mid + 1;   }else{    max = mid - 1;   }   //判斷元素是否存在。   if(max>1;  }  return mid; }}

public class ArrayTest1 { public static void main(String[] args) {  int[] arr = {9,12,15,24,36,41,59,68};  int num =binarySearch(arr,44);  System.out.println(num); } //二分查找。前天:數(shù)組必須是有序的。 /*  * 思路:  * 1.通過(guò)角標(biāo)先獲取中間角標(biāo)上的元素  * 2.讓該元素和要找的數(shù)據(jù)比較。  * 3.如果要找的數(shù)大了,縮小范圍,要找的范圍應(yīng)該是 中間的角標(biāo)+1---尾角標(biāo)  * 如果要找的數(shù)效率,要找的范圍 頭角標(biāo)---中間角標(biāo)-1。  * 4.不斷如此重復(fù),就可以找到元素對(duì)應(yīng)的角標(biāo)。  * */ public static int binarySearch(int[] arr,int key) {  //定義單個(gè)變量,記錄頭角標(biāo),尾角標(biāo),中間角標(biāo)  int max,min,mid;  min = 0;  max = arr.length-1;  while(min<=max) {   mid = (min+max)>>1;   if(key > arr[mid]) {    min = mid + 1;   }else if(key < arr[mid]) {    max = mid - 1;   }else {    return mid;   }  }  return -1; }}

數(shù)組的復(fù)制

package cn.java.study;import java.util.Arrays;public class Demo5 { public static void main(String[] args) {  int[] arr1 = {1,4,6,83,45};  int[] arr2 = new int[arr1.length];  //    源數(shù)組 源數(shù)組起始位置 目標(biāo)數(shù)組 目標(biāo)數(shù)組起始位置 復(fù)制長(zhǎng)度  System.arraycopy(arr1, 1, arr2, 2, 3);  System.out.println(Arrays.toString(arr2)); }}

常用API之Arrays類

package cn.java.study;//工具類import java.util.Arrays;public class Demo5 { public static void main(String[] args) {  //Arrays  int[] arr = {1,4,7,434,232,55};  //將數(shù)組轉(zhuǎn)換成字符串  System.out.println(Arrays.toString(arr));  //對(duì)數(shù)組進(jìn)行升序排序  Arrays.sort(arr);  System.out.println(Arrays.toString(arr));  //排序數(shù)組名 排序數(shù)組元素開始位置 排序數(shù)組元素結(jié)束位置(實(shí)際上,取到終止位置減一)[起始位置,終止位置)  Arrays.sort(arr,2,4);  System.out.println(Arrays.toString(arr));  //多核處理器下并行操作使用  Arrays.parallelSort(arr);  //二分查找下標(biāo),數(shù)組 查找的數(shù)字,返回的是插入點(diǎn),沒(méi)有的話返回的是負(fù)的插入點(diǎn)減一的值  System.out.println(Arrays.binarySearch(arr, 8));  //數(shù)組比較:元素的個(gè)數(shù)和對(duì)應(yīng)位置的數(shù)組元素相同  int[] arr1 = {1,2,5};  int[] arr2 = {1,2,5};  System.out.println(Arrays.equals(arr1, arr2));  //數(shù)組的填充,將數(shù)組中所有的元素替換為666  Arrays.fill(arr, 666);  System.out.println(Arrays.toString(arr));  //數(shù)組的復(fù)制,返回的是一個(gè)數(shù)組, (要復(fù)制的數(shù)組,幾個(gè)元素)  int[] arr3 = Arrays.copyOf(arr1, 2);  System.out.println(Arrays.toString(arr3)); }}

二維數(shù)組

格式1:

int[][] arr = new int[3][2];

定義了名稱為arr的二位數(shù)組二維數(shù)組中有3個(gè)一維數(shù)組每一個(gè)一維數(shù)組中有2個(gè)元素一維數(shù)組的名稱分別為arr[0],arr[1],arr[2]給第一個(gè)一維數(shù)組1角標(biāo)位賦值為666的寫法是:arr[0][1] = 666;

System.out.println(arr); // [[Ie6f7d2二位數(shù)組實(shí)體 e6f7d2是哈希值,[是數(shù)組,[[二位數(shù)組

格式2:

int[][] arr = new int[3][];arr[0] = new int[3];arr[1] = new int[1];arr[2] = new int[2];

到此,關(guān)于“Java數(shù)組常見應(yīng)用有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI