Java数组经典例题

java

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<arr[i].length;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].length-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<arr[i].length;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(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);

//求平均数

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");

}

}

}

(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");

}

}

}

 方法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;

}

线性查找

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("找不到");

}

}

}

}

 二分法查找

//前提必须是在有序的条件下

例子:先看一下从小到大的

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数组经典例题 的全部内容, 来源链接: utcz.com/z/394949.html

回到顶部