数组中的各项问题(数组初始定义及两个应用实例)

package c;
/*java是面向对象的编程语言,所以JAVA语言中的数组也略有不同数组元素可以是想要的对象;*/
class D_Card{
    long card_num;
    double balance;
    D_Card(long n,double b){
        card_num=n;
        balance=b;
    }
}
public class array {
public static void main(String args[])
{
    int x[];
    D_Card dc[];
    x=new int[3];
    dc=new D_Card[2];
    System.out.println("x="+x+"dc="+dc);
    System.out.println(x[0]);
    System.out.println(dc[0]);
}
}
//当数组元素为参考类型时,若未赋值,默认为null
/*x=[I@15db9742dc=[Lc.D_Card;@6d06d69c
0

null*/

/*数组的三种初始方式*/

(1)声明和创建数组对象的合写

int x[]=new int[3];

D_Card dc=new D_Card[2];

(2)声明和创建数组对象和赋值的合写

int x[]={20,30,40};

D_Card dc[]={new D_Card(2323,2,3),new Card(323,4,5)};

//

int x[]=new int{2,3,4};

D_Card dc[]=new D_Card{new D_Card{3,43,3},new D_Card{1,2,3}};


//计算二位数组的行数、列数
class array{
    public static void main(String args[]){
        int y[][]=new int[2][3];
        System.out.println("y="+y);
        System.out.println("y.length "+y.length);
        System.out.println("y[0].length "+y[0].length);
    }
}/*y=[[I@15db9742
y.length 2
y[0].length 3  */

数组操作实例:

package c;
import java.io.*;
class arr{
    int a[];
    arr(int n){
        int a[]=new int[n];
    }
    int getmax(){
        int max=a[0];
        for(int i=0;i<a.length;i++)
        {
            if (a[i]>max)
            max=a[i];
        }
        return max;
    }
    int getmin(){
        int min=a[0];
        for(int i=0;i<a.length;i++){
            if(a[i]<min)
                a[i]=min;
        }
    return min;
    }
    int getsum(){
        int sum=0;
        for(int i=0;i<a.length;i++){
            sum=sum+a[i];
        }
        return sum;
    }
    int getaverage(){
        int aver=getsum()/a.length;
        return aver;
    }
}
public class ArrayOperator {
public static void main(String args[]){
    String s=null;int n=0;arr ab=null;
    try{
        System.out.println("输入数组元素个数: ");
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        s=br.readLine();
        n=Integer.parseInt(s);
        ab=new arr(n);
        for(int i=0;i<ab.a.length;i++){
            System.out.println("输入a["+i+"]:");
            s=br.readLine();ab.a[i]=Integer.parseInt(s);
        }
}catch(IOException e){System.out.println(e.toString());}
    System.out.println("max="+ab.getmax());
    System.out.println("min="+ab.getmin());    
    System.out.println("getaverage="+ab.getaverage());
    System.out.println("sum="+ab.getsum());
}}

输入学生信息,然后排序并获得相应学生信息:

package c;
import java.io.*;
//学生信息输入
class pst{
    Student2 st[]=new Student2[30];
    void mkst(){
        String sn=null,nm=null,ss=null,as=null;
        int a=0;
        try{
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            for(int i=0;i<st.length;i++)
            {
                System.out.println("studentNo:");
                sn=br.readLine();
                System.out.println("StudentName:");
                nm=br.readLine();
                System.out.println("StudentSex:");
                ss=br.readLine();
                System.out.println("studentAge:");
                as=br.readLine();a=Integer.parseInt(as);
                st[i]=new Student2(sn,nm,ss,a);
            }
        }catch(IOException e){System.out.println(e.toString());}
    }
    void sortp(){
        int i,j;
        Student2 t=null;
        for(i=0;i<st.length;i++){
            for(j=i;j<st.length;j++){
                if(st[i].age>st[j].age)
                {
                    t=st[i];
                    st[i]=st[j];
                    st[j]=t;
                }
            }
        }
        for(i=0;i<st.length;i++)
            System.out.println(st[i].toString());
    }
    void searchp(String sn){
        int i=0;
        for(i=0;i<st.length;i++){
            if(st[i].studentNo.equals(sn)){
                st[i].updateage(st[i].getage()+1);
                System.out.println(st[i].toString());
                break;
            }
        }
    }
}
class Student2{
    String studentNo,name,sex;
    int age;
    String getstudentNo(){
        return studentNo;
    }
    String getname(){
        return name;
    }
    String getsex(){
        return sex;
    }
    int getage(){
        return age;
    }
    void updateage(int a){
        age=a;
    }
    Student2(String sn,String nm,String psex,int a){
        studentNo=sn;
        name=nm;
        sex=psex;
        age=a;
    }
    public String toString(){
        return(studentNo+";"+name+";"+sex+";"+age+";");
    }
}
public class ArrayOperator1{
    public static void main(String args[]){
        int i;
        String sn;
        pst pst1=new pst();
        pst1.mkst();
        pst1.sortp();
        try{
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            System.out.println("studentNo:");
            sn=br.readLine();
            pst1.searchp(sn);
        }catch(IOException e){System.out.println(e.toString());}
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值