java问题,不会改Index 0 out of bounds for length 0

img


import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class GradeStatistic 
{
    public static void main(String[] args) 
    {
          ArrayList<String> arrayList = new ArrayList<String>();
          ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
          Scanner input = new Scanner(System.in);
          String x = input.next();
          int score;
          while(x.equals("end"))
          {
              Scanner in = new Scanner(System.in);
              System.out.println("请输入考生姓名  ");
              x=in.next();
              System.out.println("请输入"+x+"成绩  ");
              score=in.nextInt();
              arrayList1.add(score);
              arrayList.add(x);
          }
          System.out.println("考生姓名  "+":"+"成绩  ");
          int sum=0;
          for(int i=0;i<arrayList.size();i++)
          {
              System.out.println(arrayList.get(i)+":"+arrayList.get(i));
              sum+=arrayList1.get(i);
          }
          Collections.sort(arrayList1);
          System.out.println("最低分:"+arrayList1.get(0));
          System.out.println("最低分:"+arrayList1.get(arrayList1.size()-1));
          double ave=sum/(arrayList1.size()-1);
          System.out.println("平均分:"+ave);
    }
    
}
 class Mark
 {
     int score;
     String name;
     public Mark(String name,int score)
     {
            
        
            this.name=name;
            this.score=score;
            
        }
     public String toString()
     {

            return "姓名:"+this.name+"    "+this.score;
        }
     
 }
  



这是我写的代码,求帮忙改进,谢谢

我也写来练练
代码:

package com;


import java.util.ArrayList;
import java.util.Scanner;
public class GradeStatistic 
{
   public static void main(String[] args) {
         ArrayList<Mark> arrayList = new ArrayList<Mark>();
         Scanner in = new Scanner(System.in);
         boolean b=true;//是否继续输入成绩
         while(b){
             System.out.println("请输入考生姓名  ");
             String x=in.next();
             if(x.equals("end")){
                 b=false;
                 break;//跳出本次循环
             }
             System.out.println("请输入"+x+"成绩  ");
             int score=in.nextInt();
             Mark m=new Mark(x,score);
             arrayList.add(m);
         }
         in.close();//输入结束,释放对象
         int sum=0;//总成绩
         int max=0;//最高成绩
         int min=0;//最低成绩
         System.out.println("==================开始公布成绩==================");
         for(int i=0;i<arrayList.size();i++){
            Mark m=arrayList.get(i);
            if(i==0){//默认最低值和最高值都是第一个成绩
                max=m.score;
                min=m.score;
            }else{
                if(m.score>max){
                    max=m.score;
                }
                if(m.score<min){
                    min=m.score;
                }
            }
            sum+=m.score;
            System.out.println(m.toString());
         }
         System.out.println("学生总数:"+arrayList.size());
         System.out.println("最低分:"+min);
         System.out.println("最高分:"+max);
         double ave=sum/(arrayList.size());
         System.out.println("平均分:"+ave);
         System.out.println("==================公布成绩结束==================");
   }
}
class Mark{
    int score;
    String name;
    public Mark(String name,int score){
       this.name=name;
       this.score=score;
    }
    public String toString(){
       return "姓名:"+this.name+"-成绩:"+this.score;
    }
}

运行结果:

img

如果是你想要的,请采纳!

public static void main(String[] args)
    {
        ArrayList<String> arrayList = new ArrayList<String>();
        ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
        Scanner input = new Scanner(System.in);
        System.out.println("请输入考生姓名  ");
        String x = input.next();
        int score;
        while(!x.equals("end"))
        {
            System.out.println("请输入"+x+"成绩  ");
            score=input.nextInt();
            arrayList1.add(score);
            arrayList.add(x);
            System.out.println("请输入考生姓名  ");
            x=input.next();
        }
        System.out.println("考生姓名  "+":"+"成绩  ");
        int sum=0;
        for(int i=0;i<arrayList.size();i++)
        {
            System.out.println(arrayList.get(i)+":"+arrayList1.get(i));
            sum+=arrayList1.get(i);
        }
        if(arrayList.size()>0){
            Collections.sort(arrayList1);
            System.out.println("最低分:"+arrayList1.get(0));
            System.out.println("最低分:"+arrayList1.get(arrayList1.size()-1));
            double ave=sum*1.0/(arrayList1.size());
            System.out.println("平均分:"+ave);
        }else{
            System.out.println("未输入");
        }
    }

x.equals("end)改为x.equals("end")==false,此然后你再改进一下代码逻辑,应该就可以了。