-1

このダイの面から文字へのマッピングを返します。顔は 1 ~ 6 の整数値を使用して識別され、返されたマップはそのキー (顔番号) で並べ替えられます。たとえば、顔のあるサイコロ:

1、2、3、4、5、6

文字を持っている:

C、M、I、O、U、T

toString メソッドが次の文字列を生成するマップを返します。

{1=C, 2=M, 3=I, 4=O, 5=U, 6=T}

クライアントは、返されたマップを使用して顔から文字へのマッピングを変更できません。つまり、返されたマップを変更しても、サイコロには影響しません。

戻り値: 顔から文字へのソートされたマップ

4

2 に答える 2

0
final class Die
{

  private final Map<Integer, Character> die = new HashMap<>();

  Die(CharSequence faces)
  {
    for (int idx = 0; idx < faces.length(); ++idx)
      die.put(idx + 1, faces.charAt(idx));
  }

  SortedMap<Integer, Character> facesToLetters()
  {
    return new TreeMap<>(die);
  }

  public static void main(String... argv)
    throws Exception
  {
    Die die = new Die("CMIOUT");
    System.out.println(die.facesToLetters());
  }

}
于 2013-10-17T20:59:14.090 に答える
0

もしかしてこんなもの??

Map<Integer, Character> dieMap = new Hashmap<Integer, Character>();

// ..build the map..

public String toString() {
  StringBuilder builder = new StringBuilder();
  for (Map.Entry<Integer, Character> entry : dieMap.entrySet()) {
    // append entry.getKey() and entry.getValue() how you want
  }
  return builder.toString();
}
于 2013-10-17T20:51:30.923 に答える