重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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で質問しましょう!