Вы действительно хотите использовать Map<int,A>
, а не Set<A>
.
Затем сопоставьте идентификатор (хотя он также хранится в A
!) С объектом. Итак, запоминание нового это:
A a = ...;
Map<Integer,A> map = new HashMap<Integer,A>();
map.put( a.id, a );
Ваш полный алгоритм обновления:
public static void update( Map<Integer,A> map, A obj ) {
A existing = map.get( obj.id );
if ( existing == null )
map.put( obj.id, obj );
else
existing.b = obj.b;
}
Однако, это может быть даже проще. Я предполагаю, что у вас больше полей, чем в A
, что вы дали. Если это не тот случай , просто использование Map<Integer,B>
на самом деле то, что вы хотите, то оно рухнет в ничто:
Map<Integer,B> map = new HashMap<Integer,B>();
// The insert-or-update is just this:
map.put( id, b );