草庐IT

java - 如何使用 Java 中的结构化流从 Kafka 反序列化记录?

我使用Spark2.1。我正在尝试使用SparkStructuredStreaming从Kafka读取记录,反序列化它们并在之后应用聚合。我有以下代码:SparkSessionspark=SparkSession.builder().appName("Statistics").getOrCreate();Datasetdf=spark.readStream().format("kafka").option("kafka.bootstrap.servers",kafkaUri).option("subscribe","Statistics").option("startingOffset

重复键的 Java 8 流总和条目

我正在使用Java8流按特定键对条目列表进行分组,然后按日期对这些组进行排序。我还想做的是“折叠”组中具有相同日期的任何两个条目并将它们相加。我有一个这样的类(出于示例目的而被精简)classThing{privateStringkey;privateDateactivityDate;privatefloatvalue;...}然后我将它们分组:Map>thingsByKey=thingList.stream().collect(Collectors.groupingBy(Thing::getKey,TreeMap::new,Collectors.mapping(Function.id

java - 如何使用 java 流打印嵌套列表,其中对象包含对自身的引用列表

我有一个类似于下图的对象:publicclassObj{privateListobjs;privateStringobjId;publicListgetObjs(){returnobjs;}publicStringgetobjId(){returnobjId;}@OverridepublicStringtoString(){return"Obj[objs="+objs+",objId="+objId+"]";}}如何使用流打印objId的列表?编辑Obj可以包含一个Obj列表,它的子元素可以包含一个obj对象列表。如果深度为5级,是否可以打印从最顶层obj到第5级子级的值的所有objI

java - 将双嵌套 for 循环重写为 Java 8 流

我有以下Java方法:publicListtoAuthorities(Setroles){Listauthorities=newArrayList();if(null!=roles){for(Rolerole:roles){for(Permissionpermission:role.getPermissions()){authorities.add(newSimpleGrantedAuthority("ROLE_"+permission.getLabel()));}}}returnauthorities;}我正在尝试使用Java8流重写它。迄今为止我的最佳尝试:publicListto

java - 无法将流输出到浏览器

我刚刚写了一个小程序来测试一些东西,如下:publicclassMain{publicstaticvoidmain(String[]args){ServerSocketserverSocket=null;SocketclientSocket=null;DataInputStreamdataInputStream=null;BufferedWriterbufferedWriter=null;Stringline;try{serverSocket=newServerSocket(80);clientSocket=serverSocket.accept();dataInputStream=n

java - 如何编写连接到本地文件以发送和接收数据包的客户端套接字流

如何在Java本地文件系统客户端上写入这个套接字流?Python的工作原理:#Echoserverprogramimportsocket,oss=socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)try:os.remove("/tmp/socketname")exceptOSError:passs.bind("/tmp/socketname")s.listen(1)conn,addr=s.accept()while1:data=conn.recv(1024)ifnotdata:breakconn.send(data)conn.close()

Java 8 流和并行流

假设我们有一个像这样的Collection:Set>set=Collections.newSetFromMap(newConcurrentHashMap());for(inti=0;isubSet=Collections.newSetFromMap(newConcurrentHashMap());subSet.add(1+(i*5));subSet.add(2+(i*5));subSet.add(3+(i*5));subSet.add(4+(i*5));subSet.add(5+(i*5));set.add(subSet);}并处理它:set.stream().forEach(subS

java - 将嵌套循环转换为 Java 8 流

我有以下嵌套for循环,我需要将其转换为声明性代码。for(Stringvariable:variables){booleanvalidAttribute=false;if(variable.equals(SOME_CONSTANT)){validAttribute=true;}else{for(StringattrName:attrNames){if(variableName.equals(attrName)){validAttribute=true;break;}}}if(!validAttribute){returnfalse;}}我能够通过使用flatMap来实现它。但似乎效率

java - 为什么这个流不返回任何元素?

我尝试将以下代码编写为流:AbstractDevicemyDevice=null;for(AbstractDevicedevice:session.getWorkplace().getDevices()){if(device.getPluginconfig().getPluginType().getId()==1){myDevice=device;}}这段代码工作正常。但是当我这样重写它时,它不再起作用了:myDevice=session.getWorkplace().getDevices().stream().filter(s->s.getPluginconfig().getPlug

java - 使用流对正整数进行质因数分解

我目前正在尝试将Java8的StreamAPI合并到我的日常Java工具箱中。我正在尝试使用Streams来查找正整数的质因数,然后将每个因数存储在一个数组(或ArrayList)中,并将它们的多重性存储在一个并行数组中。或者,我正在尝试创建一个say...FactorWithMultiplicity对象流,甚至是一个以因子为键、以多重性为值的Map。如果因子按升序排序,并且它甚至可以处理非常大的数字(例如,我敢说,Long.MAX_VALUE),那就太好了。目前,我的代码看起来像这样,但是,由于我是Streams的初学者,我确信有一种更快或更适合的方法来完成这项任务。请使用Strea