0
Iユーザオブジェクトのリストがあります。私はすでに等しいメソッドとハッシュメソッドをオーバーライドしています。新しいユーザーがすでにリストに登録されているかどうかを確認したい場合は追加したい場合は追加したい場合はlastTimeSeen属性を更新し、最後の5秒間にユーザーが表示されない場合は削除したいリスト。Javaの配列リストを更新する
public void updateUserList(String firstname, String lastname, String age, Long ts)
{
User newUser= new User(firstname, lastname, age,ts);
if(!listUser.contains(newUser))
listUser.add(newUser);
for (int i = 0; i < listUser.size();i++){
//if not equal to new user and ts - listUser[i].lastTimeSeen > 10 second delete user, if equal update time ?
}
}
このコードでは、新しいユーザーを追加できましたが、古いユーザーを追加または更新するのは混乱します。私はJavaで新しいです、誰かが私の方法が正しいかどうか教えてもらえませんか?
この特定のタスクには、(パフォーマンス上)より良い「マップ」を使用します。 –
要素を削除するときにリストのサイズが変更されるため、Iteratorを使用する必要があります。 –
この問題では、equals()を再定義した場合は、 'equals()'メソッドに基づいて重複を自動的に検出する 'Set'に基づくコレクションを使うべきです。さらに、「古いユーザーを削除する」の部分はおそらく別の場所で、おそらく別のスレッドで実行されるべきです。 – Preuk