ArrayListについて教えてください
Java初心者です。
現在あるJavaの問題を解いていて、つまづいてしまいました。
わかる方、ご教示お願いします。

以下問題
******************************************************************
以下2メソッドを持つShikenKekkaクラスを作成せよ

・学籍No,科目,点数を登録する
void Toroku(String 学籍No , Kamoku 科目 , int 点数);

・引数で指定した学籍No,科目の点数を返す
int getTensu(String 学籍No,Kamoku 科目);

科目は以下の定義
enum Kamoku{KOKUGO,SANSU,RIKA}

使用例として、
ShikenKekka sk = new ShikenKekka();
sk.Toroku("0A01",Kamoku.KOKUGO,70);
sk.Toroku("0A01",Kamoku.SANSU ,60);
sk.Toroku("0A01",Kamoku.RIKA ,50);
sk.Toroku("0B02",Kamoku.KOKUGO,75);
sk.Toroku("0B02",Kamoku.SANSU ,65);
sk.Toroku("0B02",Kamoku.RIKA ,55);
int point = sk.getTensu("0B02",Kamoku.RIKA);
******************************************************************

ArrayListを使って値を格納しようとしているのですが、
ArrayListの使い方がうまくできません。
学籍No,科目,点数の3つの値をどうすれば格納して保持できるのか、
教えていただけると助かります

わかりずらい説明で申し訳ありません。

A 回答 (4件)

以下ShikenKekkaClass


******************************************************************

import java.util.ArrayList;
import java.util.List;

public class ShikenKekka {

// 科目は以下の定義
public enum Kamoku{KOKUGO,SANSU,RIKA};

// 成績格納リスト
List<MySeiseki> seisekiList;

/**
* コンストラクタ
*/
public ShikenKekka(){
this.seisekiList = new ArrayList<MySeiseki>();
}

/**
* 学籍No,科目,点数を登録する
* @param no 学籍No
* @param kamoku 科目
* @param tensu 点数
*/
public void Toroku(String no , Kamoku kamoku , int tensu){

  MySeiseki myseiseki = new MySeiseki(no, kamoku, tensu);
 this.seisekiList.add(myseiseki);

}

/**
* 引数で指定した学籍No,科目の点数を返す
* 該当なしの場合は0を返す
* @param no 学籍No
* @param kamoku 科目
* @return tensu 点数
*/

public int getTensu(String no, Kamoku kamoku){

  // 点数格納変数の初期化
 int ten = 0;

 for(MySeiseki work: this.seisekiList){
  // 学歴NOと科目が一致すれば点数を取得
  if(work.getGakurekiNo().equals(no) && work.getKamoku().equals(kamoku)){

 ten = work.getTensu();
 break;
   }
}

  return ten;
}

// MY成績クラス
public class MySeiseki{

String gakurekiNo; // 学歴No
Kamoku kamoku; // 科目
int tensu;  // 点数

// コンストラクタ
public MySeiseki(String no, Kamoku k, int ten){
this.gakurekiNo = no;
this.kamoku = k;
this.tensu = ten;
}

// 学歴NOを取得する
public String getGakurekiNo(){ return this.gakurekiNo; }

// 科目を取得する
public kamoku getKamoku(){  return this.kamoku;  }

// 点数を取得する
public int getTensu(){ return this.tensu;  }

}

}

******************************************************************
自分が作成するとしたら、こんな感じです。
見にくくてすみません…
    • good
    • 0

Map<String,ArrayList> がやりたかったんじゃないかと推測。



参考URL:http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/ja …
    • good
    • 0

ArrayListを使うことが条件なんですか?


もっと別の方法があるんじゃないかって気がするんですが。
    • good
    • 0

方法1: ArrayList を 3つ使う.


方法2: 「学籍No,科目,点数の3つの値」を格納するクラスを作る.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 「進撃の巨人」、2017年夏に舞台化決定

    単行本累計発行部数6000万部を突破している大人気コミック「進撃の巨人」が、2017年夏、ついに舞台化されることが発表された。 圧倒的な力を持つ巨人とそれに抗う人間たちの戦いを描いたファンタジーバトル漫画であ...

  • サラ忍マン 良太郎:第102話「横文字」

    忍(しのび)の末裔、現代サラリーマン平野良太郎。世知辛い世の中を耐え忍ぶ企業戦士サラ忍マンとして、日々戦う。

  • 迷走恋愛!ミドリちゃん:第12話「仲よくなれた」

    ミドリは職場のイケメン上司が大好き。でも、上司を落としたくて心の中であれこれ考えていると、なぜかいつも迷走気味になってしまう。果たしてミドリは、上司を手に入れることができるのか…!?

  • 一夫多妻制、一妻多夫制があるのはどこの国?

    最近では、同性婚が認められる地域が増えるなど、婚姻の形態も世界的にはずいぶんと変わってきているといえよう。日本でも入籍後の姓の変更に関する男女間の不公平を訴える裁判があったことは記憶に新しく、婚姻に関...

  • トイレマットを敷くメリット・デメリットを学者に聞いてみた!

    年末年始に向け、そろそろ大掃除の準備を始める家庭もあるのではないだろうか。毎日使用するトイレには、特に汚れがたまっているかも。「教えて!goo」には、トイレ掃除に関する「トイレのマットって必要?」という...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ