List<Obj> list = ...; // list contains multiple objects Collection<Obj> nonDuplicateCollection = list.stream() .collect(Collectors.toMap(Obj::generateUniqueKey, Function.identity(), (a, b) -> a)) .values();