0

学生を収集するための配列と、各学生の成績配列を作成しようとしています。私のintカウントはwhileループか何かで増加します。問題は、Students 配列にエラーが発生することです。代替方法はありますか?

static int count = 0;

static int[] Grades = new int[count];

static String[] Students =  new String[Grades[count];
4

4 に答える 4

1

名前、年齢など、および成績の配列/リストを含む Student クラスを作成できます。

class Student {
  String name;
  String age;
  //...
  List<Integer> grades;

  //Getters & Setters of course
}

{name:grades} のマップを取得するメソッドを追加できます

于 2013-02-17T17:23:49.683 に答える
1

このデザインは、将来的に多くの問題を引き起こします。本当に配列に固執したい場合は、2次元配列を検討してください。

次のようにマップを使用すると、より適切でクリーンな設計になります。

map<Student, List<Grades>>  studentGrades= new Hashmap <Student, List<Grades>>() ;
于 2013-02-17T17:24:10.033 に答える
0

2次元配列を持つことができます。配列の配列のようなもので、各アイテムは配列全体を保持します。

int[][] students = new int[num_of_students][]

次に、各生徒の各配列の長さを動的に変更できます。

for (int i = 0; i < num_of_stuent; i++)
     students[i] = new int[i + 1]
于 2013-02-17T17:29:10.480 に答える
0

どうですか:

Map<String, ArrayList<Integer>> map = new HashMap<String, ArrayList<Integer>>();

たす:

String student = "Bobby";
int mark = 85;
if (map.containsKey(student))
  map.get(student).add(mark);
else
{
  ArrayList<Integer> arr = new ArrayList<Integer>();
  arr.add(mark);
  map.put(student, arr);
}

表示する:

System.out.println(map);

また:

for (Entry<String, ArrayList<Integer>> entry: map.entrySet())
  System.out.println("Marks of " + entry.getKey() + " = " + entry.getValue());

機能を拡張して、学生がより多くのプロパティを持つことができるようにするには:

class Student
{
  ArrayList<Integer> marks;
  // ...
}

宣言:

Map<String, Student> students = new HashMap<String, Student>();
于 2013-02-17T17:42:30.130 に答える