0

私は大学でこのコードを学び、C++ を学びました..後で C# で同じものを使用しました...しかし、今は Java で使用したいと思います...インターネットで同様のものを探しましたが、私はそれをどのように表現するかさえわからないので、正しい結果が得られます。

では、JAVA でこれを行う方法を教えてください。また、この方法が何と呼ばれているかも教えてください。私はそれが何をするのか知っています..しかし、私はそれがどのようにそれを行うのかわかりません..それも説明してください...

C++ は、1 つの DIFFERENCE 外観を除いて、以下と同じです。

C# if (Customers[i].delExecute(delIn) == true)

C++ if (Customers[i]->delExecute(delIn) == true)

Java ?? if (????????????????????????????????)

だからここで私は病気になるので、説明するために最善を尽くします。C#

Class called Customer with custId etc etc

List<Customer> Customers = new List<Customers>

    public void delCust(int delIn)
    {
        for (int i = 0; i < Customers.Count(); i++)
        {
            if (Customers[i].delExecute(delIn) == true)
            {
                Customers.Remove(Customers[i]);
                break;
            }
        }
    }

bool delExecute(int delInput) {
    if (custId == delInput) {
        return true;
    }
    return false;
}

わかりましたので、上記のコードは機能します

今、私はJAVAで同じことを望んでいます...誰かがどのようにアイデアを得ましたか?

4

2 に答える 2

6
if (Customers.get(i).delExecute(delIn))

== trueところで、明示的に言う必要はありません

于 2012-09-02T18:53:22.293 に答える
2

Java では、Vectorおそらく使用を避けるべき古いクラスです。代わりに、を使用する必要がありますArrayList。いずれにせよ、どちらもs であるため、 random-accessListを実装getします。

次のようにしようとしていることを実装できます...

if (customers.get(i).delExecute(delIn))

は実質的にアイデンティティ ( is 、is )== trueであるため、冗長であることに注意してください。また、Java では大文字のフィールド名を避ける必要があります。true == truetruefalse == truefalse

現在、を使用して試みていることを行うための推奨Iteratorされる方法もあります。

private List<Customer> customers = new ArrayList<Customers>();

public void delCust(int delIn) {
  final Iterator<Customer> cursor = customers.iterator();
  while (cursor.hasNext()) {
    if (cursor.next().delExecute(delIn)) {
      cursor.remove();
      break;
    }
  }
}

... と相まって:

boolean delExecute(int delInput) {
  return custId == delInput;
}
于 2012-09-02T19:03:42.913 に答える