java基础:数组

一、一维数组:
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;
}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值