# AlibabaTest **Repository Path**: edzi/AlibabaTest ## Basic Information - **Project Name**: AlibabaTest - **Description**: 蚂蚁金服笔试上机题 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-09-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Test #### Introduce #### Requirement 题目一 提供一个懒汉模式的单实例类实现。 要求: 1.考虑线程安全。 2.提供测试代码,测试线程安全性。 题目二: 1.设计含最小函数min()、pop()、push()的栈AntMinStack,存储数据元素为int 2.AntMinStack中数据存储使用Stack结构 publicclassAntMinStack{/** * push 放入元素 * @param data */publicvoidpush(intdata){// todo}/** * pop 推出元素 * @return * @throws Exception */publicintpop()throwsException {// todo}/** * min 最小函数,调用该函数,可直接返回当前AntMinStack的栈的最小值 * * @return * @throws Exception */publicintmin()throwsException {}} 要求: 1.AntMinStack实现测试,满足栈特性 2.要求min、push、pop、的时间复杂度都是O(1) 题目三: 假设本地有一个文件夹,文件夹下面有若干文件(文件数大于50小于100),文件的存储格式是文本格式(后缀名是.txt),文件的大小每个文件不会超过100k。 文件格式如下: 2000102,100,98.32000103,101,73.32000104,102,98.32000105,100,101.32000106,101,45.3...... 文件格式说明:文件每行都由三列构成,第一列是一个id,第二列是分组groupId, 第三列是指标quota。 id的数据类型是String, groupId的数据类型String, quota的数据类型float。 功能要求: 1.把所有文件里面的内容按照分组进行排序,输出所有文件按照分组升序排序之后,每个分组下面的最小指标值。比如上面的数据输出结果为: 100,2000102,98.3101,2000106,45.3102,2000104,98.3 非功能要求 1.文件读取要有线程池来执行,线程池的大小固定为10,文件内容需要存储到指定的内容数据结构当中。 2.查找要求有独立线程来执行,直接消费读取线程池产生的内存数据结构。 3.文件读取和排序要求并发作业,文件读取只要产生了数据,就可以把数据交给排序线程进行消费,计算最小值。 代码要求 1.重上面的要求语意里面抽象出合适的设计模式。 2.需要考虑多线程的并发控制,同步机制。 3.代码实现只能用JDK1.6或者1.8自带的工具类 #### User Guide Txt files in resource are used to test No.3 requirement #### Contribute Maxwell Huang