ArrayUtil { public static <T> void addNoExists(List<T> dest, List<T> src) { for (T o : src) if (!dest.contains(o)) dest.add(o); }  static void addNoExists(List<T> dest, List<T> src); static Object[] expand(Object... params); static boolean containsNotNull(Object[] array);  }
@Test public void testAddNoExists() { List<Long> src = new LinkedList<>(); src.add(1L); src.add(3L); src.add(4L); List<Long> dst = new LinkedList<>(); src.add(3L); ArrayUtil.addNoExists(dst, src); assertEquals(3, dst.size()); assertEquals((Object) 1L, dst.get(0)); assertEquals((Object) 3L, dst.get(1)); assertEquals((Object) 4L, dst.get(2)); }