java基础:数组

来源:互联网 发布:云计算平台 开源 编辑:程序博客网 时间:2024/04/29 10:15

一、一维数组:
1.定义:一维数组(简称为数组)是由一组具有相同类型的变量组成的有序集合。
数组中的变量被称为数组元素。
每个元素在数组中的位置被称为元素的下标。下标从零a[0]开始,数组长度-1结束。
int[ ] a=new int[10]; 或 int a[ ]=new int[10]; 10表示数组的长度,元素的个数。
数组的下标可以是变量。因此,可以这样来处理数组的元素:
a[i]= a[i-1]+ a[i-2]; // 相当于:a[2]= a[1]+ a[0];(最常用的方式! )

说明: (1)数组的长度可以利用表达式“数组名.length”来获得。
(2)在创建时,数组的长度必须是常量!
(3)数组一旦被创建,其大小即被固定,无法改变。
(4)数组越界,JAVA将会产生数组下标越界异常:ArrayIndexOutOfBoundsException
2.一维数组的初始化:
数组的初始化是指:在创建数组实例时进行元素的初始化。
int[ ] group={0,1,2,3,4,5,6,7,8,9};
意义: 创建一个长度为10的int型数组实例,并使它们的初值依次
为给定的初值;然后将该数组实例赋给引用名group。
注:(1)使用数组初始化时,被创建的数组的长度由初始化数据的个 数确定。
(2)用new创建数组时不能赋初值(系统将赋于它们默认值)。

package cn.test.day0912;
/**
* 1.将十个数 20,32,43,65,71,14,55,33,97,66存入数组中,求十个数中的最大值和最小值.
注:要求用方法实现.
* @author
*
*/
public class Arrays {

public static void main(String[] args) {    int a[]=arrays();    for(int i=0;i<10;i++){    System.out.print(a[i]+"\t");    }    System.out.print("\n");    int max=0;    int min=0;    max=a[0];    min=a[9];    System.out.println("最大值:"+max);    System.out.println("最小值:"+min);}    public static int[] arrays(){    int arrays[] ={20,32,43,65,71,14,55,33,97,66};    for(int i=0;i<10;i++){        for(int k=i+1;k<10;k++){            if(arrays[i]<arrays[k]){                int temp=arrays[i];                arrays[i]=arrays[k];                arrays[k]=temp;            }        }    }    return arrays;}

}

package cn.test.day0912;

import java.util.Scanner;
/**
*
* 输入10个整数,输出它们的平均值以及所有超过平均值的数。
* @author shixb
*
*/
public class Mean2 {

public static void main(String[] args) {            a();        }        public static void a(){            Scanner scanner = new Scanner(System.in);            int arrays[] =new int[10];            for(int j=0;j<10;j++){                System.out.println("请输入第"+j+"个元素:");                arrays[j] = scanner.nextInt();                }            int num=0;            for(int i=0;i<arrays.length;i++){                num=num+arrays[i];            }            double a=num/10;            System.out.println("平均数:"+a);            for(int i=0;i<arrays.length;i++){                if(arrays[i]>a){                    System.out.println(arrays[i]);        }    }}   

}
二维数组:
定义:元素是一维数组的数组叫二维数组;
类型名[][] 数组名 = new 类型名[][];
int[][] a=new int[][];
int[][] a={{1,2}{3,4}{21,32}};
则:a[2][1]=32;
意义:a引用了一个其元素类型为int[4]的数组,a的长度为3.或者说:a有三个元素,其每个元素都是一个长度为2的一维整型数组。
package cn.test.day0918;

public class Exp607 {

public static void main(String[] args) {    int[][]   a= { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };     System.out.println(  "    按行输出:"  );    for( int i=0; i<a.length; i++){           for(int j=0;j<a[i].length; j++){               System.out.print( a[i][j]+"\t" );               }                    System.out.println( );    }    /*System.out.println(  "    按列输出:"  );    for(int j=0;j<a[2].length;j++){        for(int i=0;i<a.length;i++){            System.out.print(a[i][j]+"\t");            }            System.out.print("\n");    }*/}

}

package cn.test.day0913;

public class Getmax {

public static void main(String[] args) {    arrays();    newArrays();    int a[]={2,4,35,56,4};    int x=3;    int c=search(a,x);    System.out.println("返回为:"+"\n"+c);    int b[]={23,43,5,7,6,34,54,56,76,88};    int e[]=print_MaxMin(b);    System.out.println("最大值为:"+e[0]+"\n"+"最小值为:"+e[1]);}/** *  编写一个程序:输入10个正整数,要求完成下列任务(1)输出其中的最大值;(2)按与输入相反的次序输出这10个数,每行5个; *  */public static void arrays(){    int[] nums={12,32,23,45,65,34,33,78,98,88};    int max=0;    for(int i=0;i<nums.length;i++){        if(nums[i]>max){            max=nums[i];        }    }    System.out.println("最大值为:"+max);    for(int i=nums.length-1;i>=0;i--){        System.out.print(nums[i]+"\t");        if(i==nums.length/2){            System.out.print("\n");        }    }    System.out.print("\n");}

/**
* 按行顺序为一个5×5的二维数组a赋1到25的自然数,
然后输出该数组的左下半三角元素。
*/
public static void newArrays() {
int[][] arrays = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 }, { 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 },
{ 21, 22, 23, 24, 25 } };
System.out.print(“图形为:”+”\n”);
for (int i = 0; i < arrays.length; i++) {
for (int j = 0 ; j < arrays[i].length; j++) {
if (j <= i) {
System.out.print(arrays[i][j]+”\t”);
}
}
System.out.print(“\n”);
}
}

/** * 编写一个方法search(int  a[ ],int  x):    若数组a中存在值为x 的元素,则返回该元素的下标值;否则返回-1。 *  */public static int search(int a[],int x){    for(int i=0;i<a.length;i++){        if(a[i]==x){            return i;        }    }    return -1;}/** * 编写一个方法print_MaxMin(int  a[]):    打印出数组a中的最大值和最小值。 *  */public static int[] print_MaxMin(int b[]){    int d[]=new int[2];    int max=0;    int min=b[0];    for(int i=0;i<b.length;i++){        if(b[i]>max){            max=b[i];        }else if(b[i]<min){            min=b[i];        }    }    d[0]=max;    d[1]=min;    return d;}

}

0 0