CollectionUtils.java 886 B

1234567891011121314151617181920212223242526272829
  1. package com.usky.config;
  2. import java.lang.reflect.Field;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. public class CollectionUtils {
  8. public CollectionUtils() {
  9. }
  10. public static <T> List<T> removeDuplicatesByField(List<T> list, String fieldName) throws NoSuchFieldException, IllegalAccessException {
  11. if (list != null && !list.isEmpty() && fieldName != null && !fieldName.isEmpty()) {
  12. Map<Object, T> map = new HashMap();
  13. for(T item : list) {
  14. Field field = item.getClass().getDeclaredField(fieldName);
  15. field.setAccessible(true);
  16. Object fieldValue = field.get(item);
  17. map.putIfAbsent(fieldValue, item);
  18. }
  19. return new ArrayList(map.values());
  20. } else {
  21. return list;
  22. }
  23. }
  24. }