package com.cloudcross.ssp.loader; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.log4j.Logger; import com.cloudcross.ssp.model.Advertiser; /** * 将广告主代理商信息存入内存 *创建人:周俊 *创建时间:2016.01.04 * */ public class AdvertiserLoader { private static final Logger log = Logger.getLogger(AdvertiserLoader.class); public static List ADVERTISER_LIST = new ArrayList();//存放所有的广告主信息 private static Map AGENTID_ADVERTISERID_MAP = new HashMap();//存放agentId,advertiserId键值对 /** * 获取所有的agentId放入set集合 * @return */ private static Set setAgentIdSet(){ Set agentIdSet = new HashSet(); if(ADVERTISER_LIST != null && ADVERTISER_LIST.size()>0){ for(Advertiser adv:ADVERTISER_LIST){ agentIdSet.add(adv.getAgentId()); } }else{ log.debug("ADVERTISER_LIST为空,广告主信息为空或没有加载到内存,请检查!"); } return agentIdSet; } /** * 处理加载内存中的广告主的数据,根据agentId把数据分成不同的组 * key:agentId * value:List list里面的数据有共同的agentId * @return */ private static Map> setAgentIdKeyMap(){ Map> agentKeyMap = new HashMap>(); Set agentIdSet = setAgentIdSet(); Iterator it = agentIdSet.iterator(); while(it.hasNext()){ Long agentId = it.next(); List advList = new ArrayList(); for(int i=0;i> map = setAgentIdKeyMap(); List list = null; for(Map.Entry> entry:map.entrySet()){ Long l = entry.getKey(); list = entry.getValue(); Integer count = list.size(); String str = ""; for(int i=0;i0){ log.debug(AGENTID_ADVERTISERID_MAP.get(agentId)); return AGENTID_ADVERTISERID_MAP.get(agentId); }else{ log.debug("无法从内存获取数据"); return ""; } } }