UtilList.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.malk.utils;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import java.util.*;
  4. import java.util.stream.Collectors;
  5. public abstract class UtilList {
  6. // 访问安全, 避免空指针访问访问属性异常
  7. public static boolean isEmpty(List list) {
  8. return ObjectUtil.isNull(list) || list.isEmpty();
  9. }
  10. public static boolean isNotEmpty(List list) {
  11. return !isEmpty(list);
  12. }
  13. public static boolean isEmpty(Object[] list) {
  14. return ObjectUtil.isNull(list) || list.length == 0;
  15. }
  16. public static boolean isNotEmpty(Object[] list) {
  17. return !isEmpty(list);
  18. }
  19. public static Object getLast(List list) {
  20. if (isEmpty(list)) return null;
  21. return list.get(list.size() - 1);
  22. }
  23. public static Object getLast(Object[] list) {
  24. if (isEmpty(list)) return null;
  25. return list[list.length - 1];
  26. }
  27. /**
  28. * Arrays.asList 不可变, asList 为可变 [Set -> new ArrayList<>(Map.keySet())]
  29. */
  30. public static List asList(Object... a) {
  31. List tList = new ArrayList<>();
  32. tList.addAll(Arrays.asList(a));
  33. return tList;
  34. }
  35. /// collection.frequency方法,可以统计出某个对象在collection中出现的次数
  36. private static Map _frequency(List list) {
  37. Set uniqueWords = new HashSet<>(list);
  38. int max = 0;
  39. Object val = null;
  40. for (Object word : uniqueWords) {
  41. int num = Collections.frequency(list, word);
  42. if (num > max) {
  43. max = num;
  44. val = word;
  45. }
  46. }
  47. return UtilMap.map("max, val", max, val);
  48. }
  49. /**
  50. * 某个对象在collection中出现最多次对象
  51. */
  52. public static Object maxFrequencyObject(List list) {
  53. return _frequency(list).get("val");
  54. }
  55. /**
  56. * 某个对象在collection中出现最多次次数
  57. */
  58. public static Object maxFrequencyCounty(List list) {
  59. return _frequency(list).get("max");
  60. }
  61. /**
  62. * 忽略集合内, map属性为0字段 [列表/导出]
  63. */
  64. public static List<Map> ignoreListMapZero(List<Map> list) {
  65. return list.stream().map(item -> {
  66. Map data = new HashMap();
  67. for (Object key : item.keySet()) {
  68. UtilMap.putNotZero(data, key.toString(), item.get(key));
  69. }
  70. return data;
  71. }).collect(Collectors.toList());
  72. }
  73. }