From 807023a878ef23b36405c73140e7f9df86d058c6 Mon Sep 17 00:00:00 2001 From: zhangjian Date: Mon, 29 Apr 2024 13:51:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=82=A1=E7=A5=A8=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E6=95=B0=E6=8D=AE=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/stock/market/utils/RefinitivUtil.java | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/main/java/cn/stock/market/utils/RefinitivUtil.java b/src/main/java/cn/stock/market/utils/RefinitivUtil.java index e8ffb21..f230916 100644 --- a/src/main/java/cn/stock/market/utils/RefinitivUtil.java +++ b/src/main/java/cn/stock/market/utils/RefinitivUtil.java @@ -12,10 +12,9 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.util.ReflectionUtils; import java.lang.reflect.Field; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * RefinitivUtil @@ -369,16 +368,32 @@ public class RefinitivUtil { } public static List decodeTopData(InstrumentData instrumentData) { - List list = Lists.newArrayList(); + List list = new ArrayList<>(100); instrumentData.getDataMap().forEach((k, v) -> { if (k.startsWith("BR_LINK")) { if (!v.contains("blank data")) { - list.add(v); + list.add(k); } } }); - return list; + List stringList = list.stream().sorted(topComparator()).collect(Collectors.toList()); + + List result = new ArrayList<>(); + for (String key : stringList) { + result.add(instrumentData.getDataMap().get(key)); + } + return result; } + private static Comparator topComparator() { + String flag = "BR_LINK"; + return (s1, s2) -> { + String seqStr1 = s1.substring(flag.indexOf(s1) + flag.length() + 1); + String seqStr2 = s2.substring(flag.indexOf(s2) + flag.length() + 1); + int seq1 = Integer.parseInt(seqStr1); + int seq2 = Integer.parseInt(seqStr2); + return seq1 - seq2; + }; + } }