Java数组经典例题

数组中元素的求和

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){ sum=arr[i][j]+sum; } } System.out.println("sum="+sum); } } //和为50

使用二维数组打印一个10行的杨辉三角
public class T02 { public static void main(String[] args) { //声明并且初始化数组 int[][]arr=new int[10][]; //给数组的元素赋值 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][k]=arr[i-1][k-1]+arr[i-1][k]; } } } //遍历数组 for(int i=0; i< arr.length; i++){ for(int j=0; j){ System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }


求数值型数组中元素的最大值、最小值、平均数、总和等
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]中的随机数的公式:Math.readom()*((b-a+1)+a). //注意这里出来的为double类型。 } //求最大值 int maximum=0; for(int i=0; i< arr.length; i++){ if(maximumarr[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); //求平均数 System.out.println("平均数为:"+sum/ arr.length); } }


*使用简单数组
(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"); } } }

Java数组经典例题
文章图片


(1)array1与array2的地址值一样,都指向了堆空间唯一的数组实体

(2)
for(int i=0; i< array1.length; i++){ array2[i]=array1[i]; }

数组的反转
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"); } } }

Java数组经典例题
文章图片

方法2
int i=0; int j=0; for(i=0,j= arr.length-1; i
线性查找
import java.util.Scanner; public class T06 { public static void main(String[] args) { int[]arr=new int[]{1,2,3,4,5,6,7,8,9}; Scanner s = new Scanner(System.in); System.out.print("请输入你要找的值:"); int k= s.nextInt(); for(int i=0; i< arr.length; i++){ if(k==arr[i]){ System.out.println("找到了,下标是:"+i); break; } else{ System.out.println("找不到"); } } } }

Java数组经典例题
文章图片

【Java数组经典例题】

Java数组经典例题
文章图片


二分法查找 //前提必须是在有序的条件下
例子:先看一下从小到大的
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]); } } }

Java数组经典例题
文章图片





    推荐阅读