1

Passengersメンバ プロパティString nameint health、およびString diseaseセッター メソッドとゲッター メソッドを持つクラスがあります。disease変数は最初は を保持しますnull。これがそのクラスです

public class Passengers
{
    private String name;
    private int health;
    private String disease;

    public Passengers(String _name, int _health, String _disease)
    {
        name = _name;
        health = _health;
        disease = _disease;
    }

    public void setHealth(int _health)
    {
        health = _health;
    }
    public void setDisease(String _disease)
    {
        disease = _disease;
    }

    public String getName()
    {
        return name;
    }
    public int getHealth()
    {
        return health;
    }
    public String getDisease()
    {
        return disease;
    }
}

私が知りたいのは、この変数に新しい文字列を追加する方法と、削除する方法です。たとえば、乗客のビルはnull病気で出発し、その後マラリアと風邪にかかります。Bill のdisease変数は を保持するはずmalaria, coldです。ここで、ユーザーがビルのマラリアの治療を選択したとします。
1) マラリアと風邪を足す
2) からマラリアだけを引くにはどうすればいいdiseaseですか?

病気を変えようとするときはいつでも

passengers[index].setDisease() = null;

「エラー: クラス Passengers のメソッド setDisease は、指定された型に適用できません:
必須: 文字列
が見つかりました: 引数がありません」

4

3 に答える 3

3

病気を文字列のセットにすることをお勧めします。

Set<String> diseases = new HashSet<String>();

void addDisease(String disease) {
    diseases.add(disease);
}

void removeDisease(String deisease) {
    diseases.remove(disease);
}

SetCollectionsこの場合、s は重複を保持できないため、他のものよりも「優れています」 。

于 2013-03-12T03:40:55.047 に答える
0

クラスにList<String>anArrayList<String>などを指定し、病気をこのリストに入れる必要があります。

さらに良いのは、Disease のクラスまたは列挙型を作成し、Passenger クラスに aを使用させList<Disease>、String の過剰使用を避けることです。addDisease(Disease disease)次に、クラスにパブリックとremoveDisease(Disease disease)メソッドを与えることができます。

ちなみに、上記のクラスは、複数形の Passengers ではなく、単数形の Passenger という名前にする必要があります。これは、単一の Passenger の概念を表すためです。

于 2013-03-12T03:40:44.057 に答える
0

要素(病名)にアクセスできるListように使用している場合の要件については、重複したデータを挿入できます(同じ病気が複数回追加される可能性があり、病気の数が不必要に増加し、いくつかの問題が発生する可能性があります)。likeを使用すると、一意の要素のみが許可されるため、エントリの重複に関連する問題は発生しませんが、同時に にアクセスすることはできません(必要な場合、現在のところ、それ以上の要件については認識していません)。したがって、私の知る限り、重複挿入の問題なしに FIFO 注文を提供するために使用することをお勧めします。ArrayListindexSetHashSetparticular disease by indexLinkedHashSet(HashSet with Linked approach)

于 2013-03-12T04:14:28.980 に答える