2

サイズの異なる 2 つの ArrayList があります。

ArrayList<String> names = new ArrayList<String>();
ArrayList<User> users = new ArrayList<User>();

ユーザーは属性 name と address を持つオブジェクトです。ArrayList users に格納されている User オブジェクトの名前が ArrayList 名に格納されている名前と同じであるアドレスを取得したいと考えています。

これは可能ですか?もしそうなら、どのように?

4

5 に答える 5

7
for (User u : users) {
  if (names.contains(u.getName()) {
    System.out.println("Name: " + u.getName() + ", address: " + u.getAddress());
  }
}
于 2012-07-06T09:23:54.350 に答える
0

users-list を繰り返し処理し、すべての要素が名前に含まれているかどうかを確認する必要があります。そこにたくさんの要素がある場合は、名前のリストの代わりにセットを使用することをお勧めします。

于 2012-07-06T09:23:30.960 に答える
0

names.contains(..)内部でユーザーをループする場合は、^ 2 ループを実行しています (おおよそ言えば)。

ユーザーの住所をマップに入れ、名前をキーにしてから、名前リストをループして、マップから住所を引き出します。代わりに 2n (概算) のコストがかかります。

于 2012-07-06T09:27:26.367 に答える