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つの値をどうすれば格納して保持できるのか、
教えていただけると助かります

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

このQ&Aに関連する最新のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q&= ~0x0c; &= ~0x03; |=1;

JavaScriptで分からないコードがあるので教えてください。


■変数設定
var hoge = 0;


■変数格納
・キーを押した時の条件分岐
  ~なら hoge |= 1;
  または hoge |= 2;
  または hoge |= 3;
  または hoge |= 8;

・キーを離した時の条件分岐
  ~なら hoge &= ~0x0c;
  または hoge &= ~0x03;


■変数使用
・swithch文の条件分岐に利用
  (hoge&0x03)
  (hoge&0x0c)


■質問
・どういう意味でしょうか?
・文字コード?
・ビット演算?

Aベストアンサー

ビット演算してるわね

x = x + a

x += a
って書くことができるの

つまり
hoge |= 1

hoge = hoge | 1
のことね

~はNOTのこと

0x
はアスキーコードの16進数表記ねきっと

0x0c は改ページを意味していて
0x03 は文章の最後を意味している
と思われるわ
全文がないので推測だけど

Qread(buf,int,int)メソッドで1文字取得する

javaを使ってプログラミングを勉強しています。

read(buf,int,int)メソッドで受信したバイトデータをbufに格納していると思うのですが、
格納したバイトの最後の文字を取得する方法が分かりません。

送信側では送信バイトの最後の文字をsにして送信します。
受信側では読み込んだバイトデータの最後の文字がsだったら、
ループを抜けるというようにしたいのです。

どうやって最後の文字を取得するのでしょうか?

Aベストアンサー

read(byte[], int, int)の返値を見れば何バイト読み込めたのかは分かるのですから、その値を使って配列の添字を計算するだけです。

QString(byte[] bytes, int offset, int length)の文字コードは?

String(byte[] bytes, int offset, int length)は、バイト配列(8bitずつのまとまり)を、文字列型に直す、というものだと思うのですが文字コードは何にしたがって直すのでしょうか?

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html

Aベストアンサー

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#String%28byte[],%20int,%20int%29

>プラットフォームのデフォルト文字セットを使用して、

日本語WindowsならShift_JISでしょう。他の環境では解りません。

#なので僕は

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#String%28byte[],%20int,%20int,%20java.lang.String%29

で指定するほうが好きです。(コードを読む人に,誤解を与えにくく,異なる環境でも挙動を一致させやすいから移植性も高まると考えるため)

どうしてもデフォルトがほしけりゃ
http://java.sun.com/javase/6/docs/api/java/nio/charset/Charset.html#defaultCharset%28%29
があるわけですし

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#String%28byte[],%20int,%20int%29

>プラットフォームのデフォルト文字セットを使用して、

日本語WindowsならShift_JISでしょう。他の環境では解りません。

#なので僕は

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/String.html#String%28byte[],%20int,%20int,%20java.lang.String%29

で指定するほうが好きです。(コードを読む人に,誤解を与えにくく,異なる環境でも挙動を一致させやすいか...続きを読む

QmoveTo(0,0);

<script language="JavaScript">
<!--
function new1(){
newwind2=window.open("","newwind1","width=200,height=200");
newwind2.moveTo(0,0);
          }
//-->
</script>
上記のスクリプトの時、
ウインドウの位置が(0,0)の位置に表示されず、画面の真ん中に表示される、
なぜですか。

Aベストアンサー

そのソースに問題はなさそうです。
例えば、

 <input id=newwind2>
 <script language="JavaScript">
 newwind2=window.open("","newwind1","width=200,height=200");
 newwind2.moveTo(0,0);
 </script>

とすると、
 window.open("","newwind1","width=200,height=200");
は実行されるけど
 newwind2.moveTo(0,0);
は実行されません。

QInteger型やArrayList型をint型にする方法は?

こんばんは。
Java初心者です。どうぞよろしくお願いします。

Integer型やArrayList型をint型にするにはどうしたらよいのでしょうか?
どうかアドバイスをよろしくお願いします。

Aベストアンサー

具体的には何をしたいのでしょうか。
Integer型ならintValueを取ればint型の値を得られますが、ArrayList型は明らかにint型とは互換性がありません。
どんなint型の値を取りたいのか分からないと有効な回答はできません。


人気Q&Aランキング

おすすめ情報