用Java判断实现小区进出人员身份

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 用Java判断实现小区进出人员身份
名单  100  姓名 身份证 判断  
小区  记录 进出门信息  进入小区的人 超过30分钟 并且是 否是名单中的人
一个星期为单位  超过3次  进行展示
import org.apache.commons.io.FileUtils;
import org.apache.hadoop.fs.Path;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Collection;
import java.util.HashMap;
public class Demo {
    public static void main(String[] args) throws Exception {
        //  名单  100  姓名 身份证 判断
        //
        //  小区  记录 进出门信息  进入小区的人 超过30分钟 并且是 否是名单中的人
        //
        //  一个星期为单位  连续超过3次  进行展示
        int count =0;
        File file = new File("E:\\大数据学习\\day06\\代码\\20201106\\src\\main\\java\\数据库\\数据\\100.txt");
        File f1 = new File("E:\\大数据学习\\day06\\代码\\20201106\\src\\main\\java\\数据库\\数据\\2020-01-01.txt");
        File f2 = new File("E:\\大数据学习\\day06\\代码\\20201106\\src\\main\\java\\数据库\\数据\\2020-01-02.txt");
        File f3 = new File("E:\\大数据学习\\day06\\代码\\20201106\\src\\main\\java\\数据库\\数据\\2020-01-03.txt");
            String string = FileUtils.readFileToString(file);
            String s1 = FileUtils.readFileToString(f1);
            String s2 = FileUtils.readFileToString(f2);
            String s3 = FileUtils.readFileToString(f3);
        FileUtils.writeStringToFile(f1,s2,"GBK",true);
        FileUtils.writeStringToFile(f1,s3,"GBK",true);
            String[] split = string.split("\r\n");
            String[] sp1 = s1.split("\r\n");
        for (String s : split) {
            String[] split1 = s.split("\t");
            //key是名字,value是身份证
//            System.out.println(split1[0]);
        }
        for (String s : sp1) {
            String[] split1 = s.split("\t");
            //时间之差大于30分钟的
//            System.out.println(split1[3]);
            String inTime = split1[2];
            String outTime = split1[3];
            String[] inTime2 = inTime.split(":");
            String[] outTime2 = outTime.split(":");
            //分钟 秒数
//            System.out.println(inTime2[1]);
            if (Integer.parseInt(outTime2[1])-Integer.parseInt(inTime2[1])>=30){
//                System.out.println(split1[0]);
//                System.out.println("时间之差大于30分钟的");
                count++;
                if (count==3){
                    System.out.println(split1[0]);
                System.out.println("连续三天进入小区大于30分钟,猜测身份是来蹲点");
                }else if (count==2){
                    System.out.println(split1[0]);
                    System.out.println("连续两天进入小区大于30分钟,猜测身份是外卖小哥");
                }else {
                    System.out.println(split1[0]);
                    System.out.println("一天进入小区大于30分钟,猜测身份是迷路的");
                }
            }
//            System.out.println(split1[2]);
        }
    }
}


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
Java
java类与方法的解释及其创建使用(实例:水池水的进出)
java类与方法的解释及其创建使用(实例:水池水的进出)
154 3
|
8月前
|
JavaScript Java 测试技术
基于Java的小区物业管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的小区物业管理系统的设计与实现(源码+lw+部署文档+讲解等)
119 0
|
Java API Android开发
Sui为根应用提供Java APIs,滴API。主要提供直接使用Android APIs的能力(几乎以Java作为root的身份
Sui为根应用提供Java APIs,滴API。主要提供直接使用Android APIs的能力(几乎以Java作为root的身份,在root下启动app自己的AIDL风格的Java服务。这将使root应用程序开发变得更加容易。
212 0
|
Java
java学习第九天笔记-字符串187-身份信息查看
java学习第九天笔记-字符串187-身份信息查看
105 0
java学习第九天笔记-字符串187-身份信息查看
|
16天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
74 17
|
27天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
12天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题
|
29天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。
|
29天前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。