草庐IT

collector

全部标签

go - Prometheus type Collector - 如何用我自己的数据提供 map

免责声明:我是Golang的新手,之前没有用任何其他语言做过太多编程。不过,我仍然希望有人能为我指明正确的方向。目标是:根据PrometheusGolang模块(https://godoc.org/github.com/prometheus/client_golang/prometheus#Collector)下的“示例”部分以及提到“//仅示例假数据”的部分。当然是使用我自己的真实数据。我的数据以JSON格式来自RabbitMQ端点。我解析JSON,并且可以使用正确的键创建自己的映射:我需要的值作为funcmain()范围内的goroutine的一部分。假设我的map如下所示:[“设

python - 如何在不卸载 PythonWin 的情况下禁用 PythonWin 的 “Redirecting output to win32trace remote collector” 功能?

当我运行wxPython应用程序时,它会打印字符串“Redirectingoutputtowin32traceremotecollector”,我必须打开PythonWin的跟踪收集器工具才能查看该跟踪输出。由于我对收集此输出不感兴趣,我应该如何禁用此功能? 最佳答案 您甚至可以在实例化您的wx.App()时传递它:if__name__=="__main__":app=wx.App(redirect=False)#or0app.MainLoop()wxPythonwx.Appdocs 关

java - 仅当存在多个项目时才向 Collectors.joining() 添加前缀和后缀

我有一个字符串流:Streamstream=...;我想构造一个字符串,将这些项与,连接起来作为分隔符。我这样做如下:stream.collect(Collectors.joining(","));现在我想添加一个前缀[和后缀]仅当有多个项目时才输出此输出。例如:a[a,b][a,b,c]这可以在不首先实现Stream的情况下完成吗?到List然后查看List.size()==1?在代码中:publicStringformat(Streamstream){Listlist=stream.collect(Collectors.toList());if(list.size()==1){re

java - Collectors.toSet 实现细节

我正在查看jdk-8下的Collectors.toSet实现并且几乎看到了显而易见的事情:publicstaticCollector>toSet(){returnnewCollectorImpl((Supplier>)HashSet::new,Set::add,(left,right)->{left.addAll(right);returnleft;},//combinerCH_UNORDERED_ID);看一下组合器;这之前已经讨论过here,但想法是组合器从第二个参数折叠到第一个参数。这显然发生在这里。但后来我查看了jdk-9实现并看到了这个:publicstaticCollect

java - Collectors.toMap 在与未用作值的对象不同的属性上编写合并函数

我需要创建Map来自List使用StreamAPI。persons.stream().collect(Collectors.toMap(Person::getNationality,Person::getName,(name1,name2)->name1)但在上述情况下,我想通过使用人员的年龄来解决名称属性中的冲突。有没有办法在(age1,age2)->//ifage1isgreaterthanage2returnname1,elsereturnname2行附近传递合并函数?? 最佳答案 要根据年龄选择一个人,您需要Person实例

java - Collectors.toConcurrentMap 和通过 Collectors.toMap 供应商选项将 Map 转换为 ConcurrentHashMap 之间有什么区别?

我想通过Java8Stream和Collector接口(interface)将Map转换为ConcurrentHashMap,然后是我可以使用的两个选项。第一个:Mapmb=persons.stream().collect(Collectors.toMap(p->p.age,p->p.name,(name1,name2)->name1+";"+name2,ConcurrentHashMap::new));第二个:Mapmb1=persons.stream().collect(Collectors.toConcurrentMap(p->p.age,p->p.name));哪个是更好的选择

java - 反转 Collectors.toMap 以添加到 ArrayList

我想将数字的频率放在TreeMap中,以频率作为键,并将具有该频率的数字放在ArrayList中。我有两个问题:1)我在第一个参数中收到“无法从静态上下文引用非静态方法”错误(据我所知,流引用了一个对象-发生了什么?)2)Collectors.toMap()有4个参数——似乎参数4需要用新的TreeMap初始化>,参数2可以是ArrayListadd()函数,参数3可以为null(可能)。这是怎么做到的?importjava.util.*;importjava.util.function.Function;importjava.util.stream.Collectors;public

java - 使用 Java stream API 像 SQL GROUP BY 一样汇总数据

使用SQL,我可以编写以下代码来汇总数据:SELECTsum(f1),sum(f2),f3,f4FROMTABLEXGROUPBYf3,f4这将返回一个列表,每行有4个值:sum1、sum2、v3、v4例如:这是表中的内容:1,2,a,b1,2,a,b2,2,c,d2,2,c,d3,4,c,d结果将是:2,4,a,b7,8,c,d现在假设我的数据不是数据库表,而是Java对象列表中的变量f1、f2、f3、f4。JavastreamAPI中有没有函数可以根据f3、f4来汇总这个列表? 最佳答案 仅使用JDK的StreamAPI执行此操

java - 尽可能在 Collectors 中使用 Characteristics.UNORDERED 重要吗?

因为我经常使用流,其中一些流处理大量数据,所以我认为预先分配一个近似大小的基于集合的收集器是个好主意,以防止昂贵的重新分配作为集合成长。所以我想出了这个,以及其他集合类型的类似方法:publicstaticCollector>toSetSized(intinitialCapacity){returnCollectors.toCollection(()->newHashSet(initialCapacity));}像这样使用SetfooSet=myFooStream.collect(toSetSized(100000));我担心的是Collectors.toSet()的实现设置了Char

java - Collectors.toMap 不编译

这段代码无法编译Listpairs=newArrayList();System.out.println(pairs.stream().collect(Collectors.toMap(x->x.split("=")[0],x->x.split("=")[1])));编译错误是:方法split(String)undefinedobject类型System.out.println(pairs.stream().collect(Collectors.toMap(x->x.split("=")[0],x->x.split("=")[1])错误));但是这个编译的很好Listpairs=newA