`
knight_black_bob
  • 浏览: 858040 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

地域统计 测试

    博客分类:
  • java
阅读更多

地域统计 测试

 

 

 

package com.sq.test;
import org.json.JSONArray;
import org.json.JSONObject;

import com.sq.utilities.Constants;
import com.sq.utilities.JSONArrayProcessHelper;

/**
 * <pre>
 *----the day before yesterday-----------------------------
 * 北京 1 123
 * 上海 3 101 
 *----yesterday----------------------------
 * 北京 5 ?
 * 无锡 1 ?
 * 常州 3 ?
 *----statics yesterday----------------------------
 *北京 5 128
 *上海 0 101
 *无锡 1 1
 *常州 3 3
 * </pre>
 * @author baoy
 *
 */
public class UserAreaJsonTest {

   final static String DATA_STRING = "data";
   final static String ALL_USER_COUNT = "all_user_count";
   final static String NEW_USER_COUNT = "new_user_count";
   final static String USER_AREA_CITY = "user_area_city";
	
   public static void main(String[] args) throws Exception {
	   JSONObject yesterday = yesterday();
	   JSONObject newuser = newuser();
	   
		JSONArray yesterdayJsonArray= yesterday.getJSONArray(DATA_STRING);
		JSONArray   todaydayJsonArray = newuser.getJSONArray(DATA_STRING);
		
		JSONObject resultJson = new JSONObject();
		JSONArray jsonArray = new JSONArray();
		getAllSet(yesterdayJsonArray, todaydayJsonArray);
		System.out.println("-----------------------------");
		printLog(yesterdayJsonArray);
		getJSONArray(jsonArray, yesterdayJsonArray, todaydayJsonArray);
		JSONArray jsonArray2 = JSONArrayProcessHelper.sortJSONArray(jsonArray,ALL_USER_COUNT );
		resultJson.put(DATA_STRING, jsonArray2);
		System.out.println("-----------------------------");
		printLog(resultJson);
   }
   
   private static  void   getJSONArray (JSONArray jsonArray, JSONArray yesterdayJsonArray,JSONArray todaydayJsonArray) throws Exception {
	   for (int i = 0; i < yesterdayJsonArray.length(); i++) {
		   JSONObject jObj = yesterdayJsonArray.getJSONObject(i);
			boolean isSelected = false;
		   for (int j = 0; j < todaydayJsonArray.length(); j++) {
			if ( !isSelected  &&  todaydayJsonArray.getJSONObject(j).getString(USER_AREA_CITY) .equals(jObj.getString(USER_AREA_CITY)) ) {
				JSONObject oneObject = new JSONObject();
				oneObject.put(NEW_USER_COUNT ,  todaydayJsonArray.getJSONObject(j).getLong(NEW_USER_COUNT) );
				oneObject.put(USER_AREA_CITY, todaydayJsonArray.getJSONObject(j).getString(USER_AREA_CITY)); 
				oneObject.put(ALL_USER_COUNT, todaydayJsonArray.getJSONObject(j).getLong(NEW_USER_COUNT) + jObj.getLong(ALL_USER_COUNT) );
				jsonArray.put(oneObject);
				isSelected = true;
			}
		   }
		if (isSelected== false) {
			JSONObject oneObject = new JSONObject();
			oneObject.put(NEW_USER_COUNT ,  0 );
			oneObject.put(USER_AREA_CITY, jObj.getString(USER_AREA_CITY)); 
			oneObject.put(ALL_USER_COUNT,jObj.getLong(ALL_USER_COUNT) );
			jsonArray.put(oneObject);
			isSelected = true;
		}
		 
	   }
   }
   
   
   
   
   private static  void  getAllSet(JSONArray yesterdayJsonArray,JSONArray todaydayJsonArray) throws Exception{
	   for (int i = 0; i < todaydayJsonArray.length(); i++) {
		   JSONObject  Jobj= todaydayJsonArray.getJSONObject(i);
		   boolean isSelected = false;
		   for ( int j = 0; j < yesterdayJsonArray.length(); j++) {
			 if(!isSelected && yesterdayJsonArray.getJSONObject(j).getString(USER_AREA_CITY).equals(Jobj.getString(USER_AREA_CITY))) {
				 isSelected = true;
			 }else if (!isSelected &&  j==yesterdayJsonArray.length()-1 ) {
				 isSelected = true;
				 JSONObject oneObject = new JSONObject();
				 oneObject.put(NEW_USER_COUNT ,  0);
				 oneObject.put(USER_AREA_CITY, Jobj.getString(USER_AREA_CITY)); 
				 oneObject.put(ALL_USER_COUNT, 0);
				 yesterdayJsonArray.put(oneObject);
			 }
		   }
		   if (isSelected ==false) {
			   	 isSelected = true;
				 JSONObject oneObject = new JSONObject();
				 oneObject.put(NEW_USER_COUNT ,  0);
				 oneObject.put(USER_AREA_CITY, Jobj.getString(USER_AREA_CITY)); 
				 oneObject.put(ALL_USER_COUNT, 0);
				 yesterdayJsonArray.put(oneObject);
		   }
	   }
   }
   
   
   private static  void   printLog (JSONArray jsonArray) throws Exception{
	   for (int i = 0; i < jsonArray.length(); i++) {
		   JSONObject jObj = jsonArray.getJSONObject(i);
		System.out.println(
				jObj.getString(USER_AREA_CITY)+" "+
				jObj.getLong(NEW_USER_COUNT)+" "+
				jObj.getLong(ALL_USER_COUNT)		);
	   }
   }
   
   private static  void   printLog (JSONObject resultJson) throws Exception{
	   JSONArray yesterdayJsonArray = resultJson.getJSONArray(DATA_STRING);
	   printLog(yesterdayJsonArray);
   }
   
   
   
   
   private static  JSONObject yesterday(){
		JSONObject resultJson = new JSONObject();
		JSONArray jsonArray = new JSONArray();
		try 
		{
			resultJson.put(DATA_STRING, jsonArray);
			 
			JSONObject oneObject = new JSONObject();
			oneObject.put(NEW_USER_COUNT ,  1);
			oneObject.put(USER_AREA_CITY, "北京"); 
			oneObject.put(ALL_USER_COUNT, 123);
			jsonArray.put(oneObject);
			
			JSONObject twoObject = new JSONObject();
			twoObject.put(NEW_USER_COUNT ,  3);
			twoObject.put(USER_AREA_CITY, "上海"); 
			twoObject.put(ALL_USER_COUNT, 101);
			jsonArray.put(twoObject); 
			
			return resultJson;
	     }catch (Exception e){
	    	 return resultJson; 
	     }
		
	 }
   
   
	private static JSONObject newuser(){
		JSONObject resultJson = new JSONObject();
		JSONArray jsonArray = new JSONArray();
		try 
		{
			resultJson.put(DATA_STRING, jsonArray);
			 
			JSONObject oneObject = new JSONObject();
			oneObject.put(NEW_USER_COUNT ,  1);
			oneObject.put(USER_AREA_CITY, "无锡"); 
			jsonArray.put(oneObject);
			
			JSONObject twoObject = new JSONObject();
			twoObject.put(NEW_USER_COUNT ,  3);
			twoObject.put(USER_AREA_CITY, "常州"); 
			jsonArray.put(twoObject);
			
			JSONObject threeObject = new JSONObject();
			threeObject.put(NEW_USER_COUNT ,  5);
			threeObject.put(USER_AREA_CITY, "北京"); 
			jsonArray.put(threeObject);  
			
			
			return resultJson;
	     }catch (Exception e){
	    	 return resultJson; 
	     }
		
	 }
}

 

json 排序

package com.sq.utilities;


import org.apache.log4j.Logger;
import org.json.JSONArray;
import org.json.JSONObject;

public class JSONArrayProcessHelper {
	private static Logger log = Logger.getLogger(JSONArrayProcessHelper.class);

	/**
	 * @param data 需要进行排序的数据
	 * @param tag 对数据的哪个维度进行排序
	 * @param index 输出的排序结果的最长长度,-1表示全部
	 * @return
	 */
	public static JSONArray sortJSONArray(JSONArray data, String tag) {

		if (data == null || tag == null) {
			log.error("Sort JSONArray param is null ");
			return null;
		}

		JSONArray dataArray = data;
		try {
			log.info("begin sort data length is : " + data.length());
			for (int i = 0; i < dataArray.length(); i++) {
				JSONObject teI = dataArray.getJSONObject(i);
				long valueI = teI.getLong(tag);
				for (int j = i; j < dataArray.length(); j++) {
					JSONObject teJ = dataArray.getJSONObject(j);
					long valueJ = teJ.getLong(tag);
					if (valueJ > valueI) {
						// swap
						JSONObject temp = new JSONObject();
						temp = dataArray.getJSONObject(i);
						dataArray.put(i, dataArray.get(j));
						dataArray.put(j, temp);
						valueI = valueJ; // !!
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		return dataArray;
	}

	 
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

分享到:
评论

相关推荐

    highmaps统计插件

    很高兴向大家宣布,Highcharts组件Highmaps测试版已经发布。现在,你是不是迫不及待想体验这个新产品。不仅如此,我们也为你提供Highmaps的演示、文档、API地址,再也不用去官网苦苦寻找了。 你是否被Highcharts...

    地理:3.1《自然灾害损失的地域差异》测试(湘教版选修5).pdf

    【地理:3.1《自然灾害损失的地域差异》测试(湘教版选修5)】 本测试主要关注自然灾害损失在不同地域之间的差异及其成因。自然灾害的危害程度与多个因素相关,包括经济发达程度、防抗灾能力、地理环境以及人口密度等...

    自动化测试工具介绍

    - **数据分析**:提供各种统计报表和数据分析工具。 ### 网络测试工具 #### NETClarity - **工具简介**:用于网络性能的监视、测量和诊断。 - **主要特点**: - **性能监控**:实时监测网络性能。 - **故障诊断...

    2017_2018学年八年级地理下册第五章中国的地域差异同步测试新版湘教版201805051113

    这篇资料是中国八年级地理课程关于“中国的地域差异”的同步测试,涵盖了多个地理知识点,主要涉及中国不同区域的气候、农业、资源和地理分界线等内容。 1. **秦岭-淮河分界线**:这是中国地理上的一条重要分界线,...

    51.la统计系统商业版原站打包ASP

    - **测试与调试**:在正式上线前,进行充分的测试,确保所有功能正常运行,并解决可能出现的错误。 总结而言,51.la统计系统商业版原站打包ASP是一个包含完整源代码的统计解决方案,适用于需要深度定制和精细分析的...

    测试工具简介

    特别是在分布式测试环境中,TestDirector能够跨越地域限制,协调全球范围内的测试工作,确保软件的质量与一致性。 综合来看,Visual Unit、Apache JMeter和TestDirector都是现代软件开发中不可或缺的测试工具。...

    iperf 测试软件--基于网络测试

    4. 跨地域网络连接测试:对于远程协作和云服务,iperf 可以测量不同地理位置之间的网络质量。 5. 宽带供应商测试:用户可以使用iperf 验证宽带提供商提供的带宽是否达标。 总的来说,iperf 是一个强大而灵活的网络...

    期刊基于Node.js及Mongodb的在线学习测试系统设计_沈昕1

    在线考试系统作为互联网技术进步的产物,突破了地域限制,允许用户随时随地进行学习测试,大大提升了学习效率。与传统考试相比,这种系统减少了人力、时间和资源的投入,同时也简化了试题生成、试卷提交和成绩批阅的...

    jsp流量统计系统(统计浏览流量的代码)

    5. **测试与调试**: 全面测试系统的功能和性能,确保数据准确无误。 6. **部署上线**: 部署到生产环境,监控系统运行情况,定期生成报表供决策参考。 总的来说,JSP流量统计系统是Web开发中的一个重要工具,它通过...

    Android应用源码百度统计例子.zip

    为了深入了解用户群体,可以设置和上报用户属性,如性别、年龄、地域等,从而进行用户分群和精细化运营。 8. **性能监控**: 百度统计也提供了内存、CPU、网络流量等性能监控功能,有助于优化应用性能。 9. **...

    2021年孝感地区硬件测试工程师岗位薪酬水平报告-最新数据.pdf

    孝感地区硬件测试工程师岗位的薪酬水平报告是基于大数据系统分析了200个行业、180多个城市和地区,处理超过3000万条薪酬数据后形成的详细数据统计。该报告展示了全国各地区838个不同岗位的薪酬水平,其中包括硬件...

    TESTU01测试包下载

    【描述】中的"TESTU01测试"提及的是TESTU01,它是一个强大的随机数生成器和统计测试套件,广泛用于验证加密算法、伪随机数生成器等的随机性。"MINGW的TESTU01文件"意味着这个测试包是为MINGW(Minimalist GNU for ...

    7.产品运营_数据分析-统计图.rar

    6. **A/B测试结果**:箱型图或散点图可展示A/B测试的效果,评估不同版本或策略的效果,确定最佳方案。 7. **渠道效果评估**:通过雷达图或矩阵图,可以多维度评估不同营销渠道的效果,优化投放策略。 8. **用户...

    2022年汕头地区测试员职位薪酬调查报告.pdf

    此外,报告还可能包含其他如行业发展趋势、技能需求变化、地域性差异等深入分析,这些都会对测试员的职业规划产生影响。总体来说,《2022年汕头地区测试员职位薪酬调查报告》为测试员行业的从业者和管理者提供了详实...

    2022年宁夏地区软件测试工程师职位薪酬调查报告.pdf

    6. **区域差异**:虽然报告仅针对宁夏地区,但对比其他地区的数据可以发现,不同地域的软件测试工程师薪酬存在差异,这可能与当地经济发展水平、产业结构及人才竞争情况有关。 总的来说,这份报告为宁夏地区的软件...

    5网站统计分析

    2. 数据细分:深入研究不同用户群体的行为,如新老用户、地域、时间段等。 3. A/B测试:对比不同设计或内容的效果,找出最佳方案。 4. 定期审查报告:定期分析数据,根据结果调整策略。 5. 集成多渠道数据:整合...

    网络技术在分布式测试系统上的应用

    1. **线性分布式结构**:在此结构中,所有测试工具和仪器(如服务器、数据库管理器、数据统计进程控制硬件和软件)都按照一定的顺序连接在一个局域网上。 2. **远程分布式结构**:假设仪器和控制机之间的地理距离较...

    抖音二部测试题含答案.docx

    6. 科学合理搭建账户可以清晰地对比测试效果、便于数据统计与分析、及时发现问题并处理、思路创建清晰、节省时间、细化投放策略、提升投放效果等。 7. 计划诊断工具提供诊断意见的维度有出价、预算、投放时段、建议...

    2021年薪酬报告系列之佛山地区测试部门岗位薪酬水平报告.pdf .pdf

    这份关于佛山地区测试部门岗位薪酬水平的报告提供了深入的分析数据,针对不同公司类型(外资企业、合资企业、本土私营企业、国有企业)的测试部门员工薪酬水平进行统计。报告中可能详细列出了P25(第25百分位数)、...

Global site tag (gtag.js) - Google Analytics