首页 > 编程语言 >[Java手撕]读取文件并进行left join操作

[Java手撕]读取文件并进行left join操作

时间:2024-09-30 16:44:59浏览次数:6  
标签:Map join String java import new Java line left

import java.io.*;
import java.sql.Time;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;


public class Main {

    public static void main(String[] args) throws InterruptedException, FileNotFoundException {


        String filepath1 = "src/file1.txt";
        String filepath2 = "src/file2.txt";

        Map<Integer,String[]> hashmap1 = readfile1(filepath1);
        Map<Integer,String> hashmap2 = readfile2(filepath2);
        
        Map<Integer,String[]> hashmap3 = new HashMap<>();

        for(Map.Entry<Integer,String[]> entry1 : hashmap1.entrySet()){
            for(Map.Entry<Integer,String> entry2:hashmap2.entrySet()){

                if(entry1.getKey().equals(entry2.getKey())){
                    String[] res = new String[]{"","",""};
                    res[0] = entry1.getValue()[0];
                    res[1] = entry1.getValue()[1];
                    res[2] = entry2.getValue();
                    hashmap3.put(entry1.getKey(),res);
                }

            }
        }
        for(Map.Entry<Integer,String[]> entry:hashmap3.entrySet()){
            System.out.print(entry.getKey()+" ");
            for(String s : entry.getValue()){
                System.out.print(s+" ");
            }
            System.out.println();
        }

    }


    public static Map<Integer,String[]> readfile1(String filepath) throws FileNotFoundException {

        Map<Integer,String[]> hashmap = new HashMap<>();
        try(BufferedReader bufferedReader = new BufferedReader(new FileReader(filepath))){
            String line = bufferedReader.readLine();
            while((line = bufferedReader.readLine())!=null){
                System.out.println("line "+line);
                String[] temp = line.split(",");
                Integer id = Integer.valueOf(temp[0]);
                String name = temp[1];
                String age = temp[2];
                hashmap.put(id,new String[]{name,age});
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return hashmap;
    }

    public static Map<Integer,String> readfile2(String filepath) throws FileNotFoundException {

        Map<Integer,String> hashmap = new HashMap<>();
        try(BufferedReader bufferedReader = new BufferedReader(new FileReader(filepath))){
            String line = bufferedReader.readLine();
            while((line = bufferedReader.readLine())!=null){
                System.out.println("line "+line);
                String[] temp = line.split(",");
                Integer id = Integer.valueOf(temp[0]);
                String salary = temp[1];
                hashmap.put(id,salary);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return hashmap;
    }
}

标签:Map,join,String,java,import,new,Java,line,left
From: https://www.cnblogs.com/DCFV/p/18442141

相关文章

  • Java开发中操作日志的作用和模块
     Java中的操作日志模块的开发和运行维护都是十分耗时耗力。操作日志的收集涉及到公司的项目或者是上市产品的用户体验和反馈。后端和前端开发工程师的日常工作就是对运行维护工程师收集回来的项目和产品的反馈进行系统级别的分析以及需求下发迭代开发。操作日志的打印方式分为线......
  • idea2023-快速搭建一个本地tomcat的javaWeb项目(从0到1保姆教学)
    前言如何在新版idea中搭建一个javaWeb项目,并且应用在物理的tomcat中,本文将进行从零到一,完成搭建步骤,以及相关注意事项的讲解。为什么需要配置tomcat?我们开发的javaWeb项目,最后都需要打包部署到真正的物理tomcat上发布运行;在开发阶段,我们想要测试javaWeb项目,除了使用maven......
  • Java中序列化与反序列化的学习
    对象序列化和反序列化目录对象序列化和反序列化序列化反序列化注意事项Java对象序列化(Serialization)和反序列化(Deserialization)是Java提供的一种机制,允许你将一个对象的状态保存到一个字节序列中,并能从这个字节序列中恢复出原始对象。这种机制主要用于对象的持久化存储(如保存到......
  • 安防监控/智慧安防EasyCVR视频汇聚监控平台无法启动并报错“no space left on service
    视频汇聚/安防监控/智慧安防EasyCVR视频监控平台,作为一款智能视频监控综合管理平台,凭借其强大的视频融合汇聚能力和灵活的视频能力,在各行各业的应用中发挥着越来越重要的作用。平台可以引入AI智能分析能力,能够实现对视频中的特定对象进行检测、识别、跟踪,为后续的数据分析和处理提......
  • Java的日期类都是怎么用的
    Java中的Date为什么用类表示日期,而不是像其他语言中那样用一个内置(built-in)类型来表示?例如,VisualBasic中有一个内置的date类型,程序员可以采用#12/31/1999格式指定日期。看起来这似乎很方便,程序员只需要使用内置的date类型而不用考虑类。但实际上,VisualBasic这样设计合......
  • 【hot100-java】【合并两个有序链表】
    记忆中,两个指针合并即可。 建立哨兵节点dum/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,ListNodenext......
  • 【hot100-java】【二叉树的层序遍历】
    二叉树BFS队列实现/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNodeleft,......
  • java计算机毕业设计图书共享管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着数字化时代的到来,人们获取知识的途径日益丰富,但纸质图书仍以其独特的阅读体验和收藏价值在大众生活中占据一席之地。然而,传统图书馆受限于地域、......
  • java计算机毕业设计社区互助服务平台的设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,社区作为城市居民生活的基本单元,其管理与服务的重要性日益凸显。然而,传统社区服务模式往往存在信息不对称、响应速度慢、资源分......
  • java计算机毕业设计万佳商城管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,传统零售业面临着前所未有的挑战与机遇。万佳商城作为地区内知名的零售企业,为应对市场变化,提升顾客体验与运营效率,亟需构建一......