0
今日、先生は私に、ランダムプレゼンテーショントピックピッカーをプログラムするように頼んだ。ランダムプレゼンテーショントピックピッカーがnullを返す
生徒がPCに行ってDialogというメッセージをクリックすると、トピックとトピックの最大インデックスの間の数字がランダムに生成され、それに応じてトピックが印刷されるという考えがありました。
私はHashMapsで試しました。 Stringを一緒にとどまるキーを入れることで、(出力後に)そのエントリを削除して他の生徒が同じトピックを取得できないようにすることができます。
しかし、常に少なくとも1つの空の参照 - > nullを返します。
static HashMap<Integer, String> map = new HashMap<>();
public static void main(String[] args){
int anzahlEintraege = Integer.parseInt(JOptionPane.showInputDialog("Wie viele Themen gibt es?"));
for(int i = 0; i < anzahlEintraege; i++){
map.put((i+1),JOptionPane.showInputDialog("Geben Sie das Thema Nummer " + (i+1) + " ein!"));
}
JOptionPane.showMessageDialog(null, "Jetzt geht's Los!");
int max = map.size();
int removed = 0;
for(int i = 0; i < max; i++){
Random r = new Random();
int random = r.nextInt(max-1)+1;
JOptionPane.showMessageDialog(null, "Sie haben das Thema "+ map.get(random) + " gezogen!");
map.remove(random);
removed++;
}
}
をランダムに削除しないでください:ここで
は、あなたが適応することができるはずの文字列を使用した簡単な例です。もう一度ランダムに選んだ場合は、マップにその項目がないため、nullが返されます。 –