From a6ac8a6b2b60ea0e0855a6fa3c3936beb2e39984 Mon Sep 17 00:00:00 2001 From: LamGC Date: Wed, 29 Jul 2020 03:02:29 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BC=98=E5=8C=96=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E4=B8=AD=E7=9A=84=E5=8E=BB=E9=87=8D=E6=96=B9?= =?UTF-8?q?=E6=B3=95;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Update] BotCommandProcess 调整搜索命令, 使用HashSet对artworkList进行去重; --- .../net/lamgc/cgj/bot/BotCommandProcess.java | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/main/java/net/lamgc/cgj/bot/BotCommandProcess.java b/src/main/java/net/lamgc/cgj/bot/BotCommandProcess.java index 841d0f8..a2b1544 100644 --- a/src/main/java/net/lamgc/cgj/bot/BotCommandProcess.java +++ b/src/main/java/net/lamgc/cgj/bot/BotCommandProcess.java @@ -401,9 +401,6 @@ public class BotCommandProcess { PixivSearchAttribute areaAttribute = PixivSearchAttribute.valueOf(searchLinkBuilder.getSearchArea().toString()); Properties properties = SettingProperties.getProperties(groupId); int expectedQuantity = pageRange * SEARCH_PAGE_MAX_ITEM; - // 一个可能不算最好的去重方法?我已经对Pixiv搜索结果完全重复的情况感到无语了 :( - Set artworkIdSet = new HashSet<>(); - int addItemCount = 0; for(int pageIndex = startPageIndex; pageIndex <= startPageIndex + pageRange - 1 || artworkList.size() < length || artworkList.size() < expectedQuantity; pageIndex++) { @@ -431,22 +428,16 @@ public class BotCommandProcess { log.warn("作品 {} 被报告, 跳过.", illustId); continue; } - if(artworkIdSet.contains(illustId)) { - continue; - } - - artworkIdSet.add(illustId); artworkList.add(artworkInfo); - addItemCount++; } } - if(addItemCount == 0) { - log.warn("已无法获取更多作品, 停止搜索."); - break; - } - addItemCount = 0; } + // 去重 + Set hashSet = new HashSet<>(artworkList.size()); + hashSet.addAll(artworkList); + artworkList.clear(); + artworkList.addAll(hashSet); return artworkList; }