You can't do that.  The Arrays.asList result has a constant length.  Which means on the 3rd item for the same key, you'll throw an exception during add().

This has to be an ArrayList, but you can set its size as 2:

  ArrayList<DiffEntry> tmp = new ArrayList<DiffEntry>(2);
  tmp.add(old);
  tmp.add(del);
  map.put(id, tmp);

On the next addition when have a 3rd item, the array list will double in capacity to 4 elements, then 8, 16, etc.