• 俩个不同对象的List获取交集通过属性来判断,JDK8Stream的使用


    主要得代码:

    1. public class EventTagsRuleMappingUtil {
    2. /**
    3. * 1、 主表标签转化为事件标签,
    4. * 2、 舆情事件入库且分组排序获取最高权重;
    5. * 3、 判断事件是否四级事件,没有获取四级事件
    6. * 4、 四级事件入库
    7. */
    8. public void mergeEventAndNewsTags(List tagsList, List eventTags) {
    9. // 事件表主体可能为空,主表主体的标签要分离出来涉及证券+涉及公司
    10. if (CollectionUtils.isEmpty(tagsList)) {
    11. }
    12. List otherEventTags = new ArrayList<>();
    13. List otherNewsTags = new ArrayList<>();
    14. otherNewsTags = tagsList.stream()
    15. .filter(item -> !eventTags.stream()
    16. .map(e -> {
    17. if (Objects.equals(item.getBusinessId(), e.getBusinessId())) {
    18. return null;
    19. } else {
    20. return item.getBusinessId();
    21. }
    22. })
    23. .collect(Collectors.toList())
    24. .contains(item.getBusinessId()))
    25. .collect(Collectors.toList());
    26. otherNewsTags.stream().forEach(System.out::println);
    27. }
    28. public List createNewsTags() {
    29. List tagsList = new ArrayList<>();
    30. TbmNewsTags tbmNewsTags=new TbmNewsTags();
    31. tbmNewsTags.setNewsId(1L);
    32. tbmNewsTags.setId(1L);
    33. tbmNewsTags.setBusinessId("1");
    34. tagsList.add(tbmNewsTags);
    35. tbmNewsTags=new TbmNewsTags();
    36. tbmNewsTags.setNewsId(2L);
    37. tbmNewsTags.setId(2L);
    38. tbmNewsTags.setBusinessId("2");
    39. tagsList.add(tbmNewsTags);
    40. tbmNewsTags=new TbmNewsTags();
    41. tbmNewsTags.setNewsId(3L);
    42. tbmNewsTags.setId(3L);
    43. tbmNewsTags.setBusinessId("3");
    44. tagsList.add(tbmNewsTags);
    45. tbmNewsTags=new TbmNewsTags();
    46. tbmNewsTags.setNewsId(4L);
    47. tbmNewsTags.setId(4L);
    48. tbmNewsTags.setBusinessId("4");
    49. tagsList.add(tbmNewsTags);
    50. tbmNewsTags=new TbmNewsTags();
    51. tbmNewsTags.setNewsId(5L);
    52. tbmNewsTags.setId(5L);
    53. tbmNewsTags.setBusinessId("5");
    54. tagsList.add(tbmNewsTags);
    55. tbmNewsTags=new TbmNewsTags();
    56. tbmNewsTags.setNewsId(6L);
    57. tbmNewsTags.setId(6L);
    58. tbmNewsTags.setBusinessId("6");
    59. tagsList.add(tbmNewsTags);
    60. tbmNewsTags=new TbmNewsTags();
    61. tbmNewsTags.setNewsId(7L);
    62. tbmNewsTags.setId(7L);
    63. tbmNewsTags.setBusinessId("7");
    64. tagsList.add(tbmNewsTags);
    65. return tagsList;
    66. }
    67. public List createEventTags() {
    68. List eventTags = new ArrayList<>();
    69. TbmEventTags tbmEventTags=new TbmEventTags();
    70. tbmEventTags.setId(5L);
    71. tbmEventTags.setNewsId(5L);
    72. tbmEventTags.setBusinessId("5");
    73. eventTags.add(tbmEventTags);
    74. return eventTags;
    75. }
    76. /**
    77. * 输出的结果
    78. * TbmNewsTags(id=5, newsId=5, registerTagId=null, categoryCode=null, categoryName=null, tagName=null, tagWeight=null, businessId=5, businessCode=null, matchKey=null, frequency=null, nedType=null, main=null, updateTime=null, createTime=null, aiCreate=null, isDelete=null)
    79. * @param args
    80. */
    81. public static void main(String[] args) {
    82. EventTagsRuleMappingUtil eventTagsRuleMappingUtil = new EventTagsRuleMappingUtil();
    83. List tagsList = eventTagsRuleMappingUtil.createNewsTags();
    84. List eventTags = eventTagsRuleMappingUtil.createEventTags();
    85. eventTagsRuleMappingUtil.mergeEventAndNewsTags(tagsList, eventTags);
    86. }
    87. //
    88. }

  • 相关阅读:
    WebSocket 入门案例
    目标检测YOLO实战应用案例100讲-雾天场景下低能见度图像 目标检测(中)
    【NR 定位】3GPP NR Positioning 5G定位标准解读(十)-增强的小区ID定位
    FFmpeg和SDL实现视频播放器之 ⌈音频播放⌋
    EasyRAFT
    I.MX6U ALPHA裸机开发
    汽车零部件制造迎来智能化升级,3D视觉定位系统助力无人化生产线建设
    设计模式--模板方法&外观模式
    ​​植物大战僵尸杂交版直装版v2.1 安卓版:全新策略塔防体验
    Linux OS源的问题记录
  • 原文地址:https://blog.csdn.net/m0_59252007/article/details/126144181