0

少し概念的な助けが必要です。小さな野球アプリケーションを作ろうとしています。野球では、チームのすべての選手をポジションごとに表示する深度チャートがあります。また、それぞれの深度チャートのトップにいるプレーヤーのみになるラインナップを作成する必要があります。どのようにそれを行うのが最善の(最も効率的な)方法ですか。私が恐れている私の作業ソリューションは原始的です(私はまだかなり新しいので、役に立たない場合は申し訳ありません)

私が持っているものは次のとおりです。

    private List<Player>[] depthChart = new ArrayList[9]; // 0 catcher, 1 pitcher, etc
private ArrayList<Player> lineup = new ArrayList<Player>(); // 0 of depthChart only

ゲーム プランは、depthChart 配列を解析し、最初のエントリのみがラインナップに入ることができるようにすることです。重複をなくし、ラインナップの順序が維持されるように、制約とロジックを組み込む必要があります。しかし、もっと良い方法があると思わずにはいられません。

これはまったく役に立たないことを知っているので、必要に応じてこれを無視してください。しかし、もっと賢い人がいるなら、いくつかのヒントとガイダンスが欲しい. 私のためにコードを書く必要はありません。これにアプローチする方法についてのヒントが必要です。

4

1 に答える 1

1

キーはポジションの列挙Mapで、値はそのポジションをプレイできる人ですSetPlayers順序Player値の深さを指定して、それでソートできるようにします。

public enum Position {
    PITCHER, CATCHER, FIRST, SECOND, SHORT, THIRD, LEFT, CENTER, RIGHT
}

public class Player {
    private String name;
    private Position position;
    private int depth;  
    // be sure to properly override equals and hash code to eliminate duplicates  
}
于 2012-06-10T16:43:16.433 に答える