Java數(shù)組操作經(jīng)典例題大總結(jié)
數(shù)組中元素的求和
public class T02 { public static void main(String[] args) { int[][]arr=new int[][]{{1,2,3,4,5},{1,2,3,5},{8,9,7}}; int sum=0; for(int i=0;i< arr.length;i++){ for(int j=0;j<arr[i].length;j++){ sum=arr[i][j]+sum; } } System.out.println("sum="+sum); } } //和為50
使用二維數(shù)組打印一個(gè)10行的楊輝三角
public class T02 { public static void main(String[] args) { //聲明并且初始化數(shù)組 int[][]arr=new int[10][]; //給數(shù)組的元素賦值 for(int i=0;i< arr.length;i++){ arr[i]=new int[i+1]; arr[i][0]=arr[i][i]=1; if(i>1){ for(int k=1;k<arr[i].length-1;k++){ arr[i][k]=arr[i-1][k-1]+arr[i-1][k]; } } } //遍歷數(shù)組 for(int i=0;i< arr.length;i++){ for(int j=0;j<arr[i].length;j++){ System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }
求數(shù)值型數(shù)組中元素的最大值、最小值、平均數(shù)、總和等
public class T03 { public static void main(String[] args) { int[] arr=new int[10]; for(int i=0;i< arr.length;i++){ arr[i]=(int)Math.random()*((99-10+1)+10); //[a,b]中的隨機(jī)數(shù)的公式:Math.readom()*((b-a+1)+a). //注意這里出來的為double類型。 } //求最大值 int maximum=0; for(int i=0;i< arr.length;i++){ if(maximum<arr[i]){ maximum=arr[i]; } } System.out.println("最大值為:"+maximum); //求最小值 int minimum=arr[0]; for(int i=1;i< arr.length;i++){ if(minimum>arr[i]){ minimum=arr[i]; } } System.out.println("最大值為:"+minimum); //求和 int sum=0; for(int i=1;i< arr.length;i++){ sum=sum+arr[i]; } System.out.println("sum:"+sum); //求平均數(shù) System.out.println("平均數(shù)為:"+sum/ arr.length); } }
*使用簡單數(shù)組
(1)創(chuàng)建一個(gè)名為T04的類,在main()方法中聲明array1和array2兩個(gè)變量
他們是int[]類型的數(shù)組。
(2)使用大括號{},把a(bǔ)rray1初始化為8個(gè)素?cái)?shù):2,3,5,7,11,13,17,19。
(3)顯示array1的內(nèi)容。
(4)賦值array2變量等于array1,修改array2中的偶索引元素,使其等于索引值(如array[0]=0, array[2]=2)。打印出array1。**思考:array1和array2是什么關(guān)系?
拓展:修改題目,實(shí)現(xiàn)array2對array1數(shù)組的復(fù)制
public class T04 { public static void main(String[] args) { int[] array1,array2; array1=new int[]{2,3,5,7,11,13,17,19}; for(int i=0;i< array1.length;i++){ System.out.print(array1[i]+"\t"); } //賦值array1變量等于array2 //不能稱作數(shù)組的復(fù)制 array2=array1; for(int i=0;i< array1.length;i++){ if(i%2==0){ array2[i]=i; } } System.out.println(); System.out.println("******************************************"); for(int i=0;i< array1.length;i++){ System.out.print(array1[i]+"\t"); } } }
(1)array1與array2的地址值一樣,都指向了堆空間唯一的數(shù)組實(shí)體
(2)
for(int i=0;i< array1.length;i++){ array2[i]=array1[i]; }
方法2
int i=0; int j=0; for(i=0,j= arr.length-1;i<j;i++,j--){ int a=arr[i]; arr[i]=arr[j]; arr[j]=a; }
線性查找
public class T05 { public static void main(String[] args) { int[]arr=new int[]{1,2,3,4,5,6,7,8,9}; for(int i=0;i< arr.length;i++){ System.out.print(arr[i]+"\t"); } System.out.println(); for(int i=0;i< arr.length;i++){ if(i< arr.length-1-i){ int a=arr[i]; arr[i]=arr[arr.length-1-i]; arr[arr.length-1-i]=a; } } for(int i=0;i< arr.length;i++){ System.out.print(arr[i]+"\t"); } } }
二分法查找
//前提必須是在有序的條件下
例子:先看一下從小到大的
import java.util.Scanner; public class T07 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int a= s.nextInt(); int[]arr=new int[]{1,2,3,4,6,7,8,9,10}; int left=0; int right= arr.length-1; boolean is=true; while(left<=right){ int average=(int)(left+right)/2; if(arr[average]>a){ right=average-1; } else if(a==arr[average]){ System.out.println("找到了,下標(biāo)是:"+average); is=false; } else { left = average + 1; // }if(left==right){ // System.out.println("沒有找到"); // is=false; } } if(is){ System.out.println("很遺憾沒有找到"); } } }
冒泡排序
public class T08 { public static void main(String[] args) { int[]arr=new int[]{33,55,2,6,-8,-5,66,1,63}; 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]){ int a=arr[j]; arr[j]=arr[j+1]; arr[j+1]=a; } } } for(int i=0;i< arr.length;i++) { System.out.println(arr[i]); } } }
求一個(gè)3*3矩陣對角線元素之和
這是一道矩陣的編程實(shí)現(xiàn)題。Java中矩陣一般都是通過二維數(shù)組實(shí)現(xiàn)的。
具體代碼如下:
import java.util.Random; /** * 求一個(gè)3*3矩陣對角線元素之和 * * @author ChenZX * */ public class Test04 { public static void main(String[] args) { int sum = 0; //和 int[][] arr = new int[3][3]; Random r = new Random(); for(int i=0;i<3;i++){ //隨機(jī)生成矩陣 for(int j=0;j<3;j++){ arr[i][j] = r.nextInt(10); //0到9 } } for(int i=0;i<3;i++){ //遍歷矩陣 for(int j=0;j<3;j++){ System.out.print(arr[i][j]+" "); //打印矩陣元素 if(i==j){ //如果為對角線元素 sum += arr[i][j]; //求和 } } System.out.println(); //每輸出3個(gè)元素?fù)Q行 } System.out.println("此矩陣對角線的和為:"+sum); } }
總結(jié)
到此這篇關(guān)于Java數(shù)組操作經(jīng)典例題的文章就介紹到這了,更多相關(guān)Java數(shù)組例題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一篇文章帶你深入理解JVM虛擬機(jī)讀書筆記--鎖優(yōu)化
這篇文章深入介紹了JVM虛擬機(jī)的鎖優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2021-09-09基于Java中的StringTokenizer類詳解(推薦)
下面小編就為大家?guī)硪黄贘ava中的StringTokenizer類詳解(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05使用SpringMVC響應(yīng)json格式返回的結(jié)果類型
這篇文章主要介紹了使用SpringMVC響應(yīng)json格式返回的結(jié)果類型,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07解決IDEA的maven項(xiàng)目中沒有新建Servlet文件的選項(xiàng)問題
這篇文章主要介紹了IDEA的maven項(xiàng)目中沒有新建Servlet文件的選項(xiàng)問題及解決方法,本文給大家分享問題原因就解決方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09ByteArrayInputStream簡介和使用_動力節(jié)點(diǎn)Java學(xué)院整理
ByteArrayInputStream 是字節(jié)數(shù)組輸入流。它繼承于InputStream。這篇文章主要介紹了ByteArrayInputStream簡介和使用_動力節(jié)點(diǎn)Java學(xué)院整理,需要的朋友可以參考下2017-05-05詳解Java創(chuàng)建多線程的四種方式以及優(yōu)缺點(diǎn)
這篇文章主要介紹了Java創(chuàng)建多線程的四種方式以及優(yōu)缺點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11