首页 > 编程语言 >记录java中多字段分组

记录java中多字段分组

时间:2023-12-04 15:11:18浏览次数:33  
标签:中多字 java String 192.168 分组 NetworkConnection new dstPort public

package cn.mw;

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

class NetworkConnection {
    private String srcIp;
    private String dstIp;
    private int srcPort;
    private int dstPort;

    public NetworkConnection() {
    }

    public NetworkConnection(String srcIp, String dstIp, int srcPort, int dstPort) {
        this.srcIp = srcIp;
        this.dstIp = dstIp;
        this.srcPort = srcPort;
        this.dstPort = dstPort;
    }

    public String getSrcIp() {
        return srcIp;
    }

    public void setSrcIp(String srcIp) {
        this.srcIp = srcIp;
    }

    public String getDstIp() {
        return dstIp;
    }

    public void setDstIp(String dstIp) {
        this.dstIp = dstIp;
    }

    public int getSrcPort() {
        return srcPort;
    }

    public void setSrcPort(int srcPort) {
        this.srcPort = srcPort;
    }

    public int getDstPort() {
        return dstPort;
    }

    public void setDstPort(int dstPort) {
        this.dstPort = dstPort;
    }

    // 省略构造函数和其他方法

    // Getter 和 Setter 方法
}

public class ConnectionGrouper {
    public static void main(String[] args) {
        // 假设你有一个 List<NetworkConnection> connections
        List<NetworkConnection> connections = Arrays.asList(
                new NetworkConnection("192.168.1.1", "192.168.2.1", 8080, 80),
                new NetworkConnection("192.168.1.2", "192.168.2.2", 8081, 81),
                new NetworkConnection("192.168.1.3", "192.168.2.3", 8081, 81),
                new NetworkConnection("192.168.1.4", "192.168.2.4", 8081, 81),
                new NetworkConnection("192.168.1.5", "192.168.2.5", 8081, 81),
                new NetworkConnection("192.168.1.6", "192.168.2.6", 8081, 81)
        );

        // 使用Java Stream API进行分组
        Map<String, List<String>> groupedConnections = connections.stream()
                .flatMap(connection -> Stream.of(
                        new AbstractMap.SimpleEntry<>("src_ip", String.valueOf(connection.getSrcIp())),
                        new AbstractMap.SimpleEntry<>("dst_ip", String.valueOf(connection.getDstIp())),
                        new AbstractMap.SimpleEntry<>("src_port", String.valueOf(connection.getSrcPort())),
                        new AbstractMap.SimpleEntry<>("dst_port", String.valueOf(connection.getDstPort()))
                ))
                .filter(entry -> !entry.getValue().equals("null"))
                .collect(Collectors.groupingBy(
                        Map.Entry::getKey,
                        Collectors.mapping(Map.Entry::getValue, Collectors.toList())
                ));

        // 输出结果
        groupedConnections.forEach((key, value) -> System.out.println(key + ": " + value));
    }
}

 

标签:中多字,java,String,192.168,分组,NetworkConnection,new,dstPort,public
From: https://www.cnblogs.com/xxsdnol/p/17874996.html

相关文章

  • Java开发者的Python快速实战指南:探索向量数据库之图像相似搜索-文字版
    首先,我要向大家道个歉。原本我计划今天向大家展示如何将图片和视频等形式转换为向量并存储在向量数据库中,但是当我查看文档时才发现,腾讯的向量数据库尚未完全开发完成。因此,今天我将用文本形式来演示相似图片搜索。如果您对腾讯的产品动态不太了解,可以查看官方网址:https://cloud.t......
  • 【Java 进阶篇】Java Request 获取请求体数据详解
    在JavaWeb开发中,获取HTTP请求的请求体数据是一项常见任务。HTTP请求的请求体通常包含了客户端提交的数据,例如表单数据、JSON、XML等。在Java中,可以使用HttpServletRequest对象来获取HTTP请求的请求体数据。本文将详细解释如何使用Java获取HTTP请求的请求体数据,并提供示例代码。HTT......
  • Java异常处理
    异常处理是Java编程中的一个核心概念,它提供了一种强大的方法来处理运行时错误,使我们的程序更加健壮。异常是程序运行过程中发生的不正常情况,它打断了正常的指令流。本文将介绍Java中的异常处理机制,包括异常的类型、如何捕获和处理异常,以及自定义异常。异常类型在Java中,所有的异常都......
  • java中http请求中sessionID的生成方式
    java中http请求中sessionID的生成方式今天的笔记是为了搞清楚4个问题,搞清楚这四个问题,那么我工作上的困难也就解决了。1).sessionId是在什么地方生成的?2).sessionId的生产规则是怎么样的?3).sessionId存储在哪里?4).sessionId可以如何获取?它是在容器里面生成的,spingBoo......
  • Java 连接MySql数据库配置
    用navicat连接Mysql1.点击连接,选择Mysql2.输入连接名称,密码,安装Mysql时输入的密码,本人默认123456,好记3.点击测试连接出现上面这种情况是Mysql服务没有开启解决方案:任务管理器 ------服务------找到mysql服务----右键开始启动服务之后,打开我们的navicat,再次测试连接,点击确定打开本......
  • Java零基础-if条件语句
    前言条件语句是编程语言中最基础也是最常用的语句之一,对于初学者来说,掌握好条件语句是学习编程的第一步。本文将以Java开发语言为例,详细介绍Java中的if条件语句及其应用场景。摘要本文主要包含以下内容:Java中的if条件语句的概念和语法格式if条件语句的源代码解析if条件语句......
  • Java泛型的定于与使用
    Java泛型的定于与使用泛型也叫泛类型。Java中可以声明泛型的地方。泛型的分类:泛型类:在类的定义时,声明泛型泛型接口:在接口的定义时,声明泛型泛型方法:在类的方法上声明泛型一、泛型类1、语法className<T1,T2,...,Tn>{//}/**T代表一个Java类,在类上声明......
  • java 捕获异常Exception 获取异常信息的方法 e.toString() e.getMessage() e.printSta
    Java异常中e.getMessage()和e.toString()e.printStackTrace()的区别e.getMessage():打印异常的原因e.toString():打印异常类型和异常的原因e.printStackTrace():打印完整的异常堆栈信息  总结e.getMessage()和e.toString()方法:打印的异常信息太少,没有具体......
  • JavaWeb实现文件上传和下载
    环境配置:导入依赖jar包。commons-fileupload-1.4.jarcommons-io-2.6.jar上传表单的enctype属性enctype属性规定在发送到服务器之前应该如何对表单数据进行编码。语法<formenctype="value">1属性值值 描述application/x-www-form-urlencoded 在发送前编码所有字符(默认)multipart/......
  • 1.Java集合(List、Set、Queue)
    1.集合概述Java集合也被称为容器。主要由两个接口组成,一个是Collection接口,主要存放单一元素;一个是Map接口,主要存放键值对。Collection下面还有三个子接口,分别是List、Set、Queue。Java框架如下图所示:1.1List、Set、Queue、Map简介List(对付顺序的好帮手):存储的元素有序、......