java数组常见编程题型,java数组操作方法

  java数组常见编程题型,java数组操作方法

  

目录

数组中元素的求和使用二维数组打印一个10行的杨辉三角求数值型数组中元素的最大值、最小值、平均数、总和等*使用简单数组线性查找二分法查找冒泡排序求一个3*3矩阵对角线元素之和总结

 

  

数组中元素的求和

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){ for(int j=0;贾尔[我]。长度;j){ sum=arr[I][j]sum;} }系统。出去。println( sum= sum);}}//和为50

 

  

使用二维数组打印一个10行的杨辉三角

公共类T02 {公共静态void main(String[] args) { //声明并且初始化数组int[][]arr=new int[10][];//给数组的元素赋值for(int I=0;长度;I){ arr[I]=new int[I 1];arr[I][0]=arr[I][I]=1;if(i1){ for(int k=1;卡尔[我]。长度-1;k){ arr[I][k]=arr[I-1][k-1]arr[I-1][k];} } } //遍历数组for(int I=0;长度;I){ for(int j=0;贾尔[我]。长度;j){系统。出去。print(arr[I][j] t );}系统。出去。println();} }}

 

  

求数值型数组中元素的最大值、最小值、平均数、总和等

公共类t03 { public static void main(String[]args){ int[]arr=new int[10];for(int I=0;长度;I){ arr[I]=(int)math。random()*((99-10 1)10);//[甲,乙]中的随机数的公式:Math.readom()*((b-a 1) a).//注意这里出来的为两倍类型。 } //求最大值int maximum=0;for(int I=0;长度;I){ if(maximum marr[I]){ maximum=arr[I];} } System.out.println(最大值为:最大值);//求最小值int minimum=arr[0];for(int I=1;长度;I){ if(minimu marr[I]){ minimum=arr[I];} } System.out.println(最大值为:最小值);//求和int sum=0;for(int I=1;长度;I){ sum=sum arr[I];}系统。出去。println( sum : sum);//求平均数System.out.println(平均数为: sum/arr。长度);}}

 

  >

  

*使用简单数组

(1)创建一个名为T04的类,在main()方法中声明array1和array2两个变量

 

  他们是int[]类型的数组。

  (2)使用大括号{},把array1初始化为8个素数:2,3,5,7,11,13,17,19。

  (3)显示array1的内容。

  (4)赋值array2变量等于array1,修改array2中的偶索引元素,使其等于索引值(如array[0]=0, array[2]=2)。打印出array1。**思考:array1和array2是什么关系?拓展:修改题目,实现array2对array1数组的复制

  

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 //不能称作数组的复制 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的地址值一样,都指向了堆空间唯一的数组实体

  (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("找到了,下标是:"+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]); } }}

 

  

 

  

求一个3*3矩阵对角线元素之和

这是一道矩阵的编程实现题。Java中矩阵一般都是通过二维数组实现的。

 

  具体代码如下:

  

import java.util.Random;/** * 求一个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++){ //随机生成矩阵 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个元素换行 } System.out.println("此矩阵对角线的和为:"+sum); }}

 

  

 

  

总结

到此这篇关于Java数组操作经典例题的文章就介绍到这了,更多相关Java数组例题内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: