首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

gamecenter有用代码(2)

2012-07-30 
gamecenter有用代码(二)1、Map转换为list/*** 将展示结构的Map封装为ListAppPage** @param map* @return

gamecenter有用代码(二)
1、Map转换为list

/**     * 将展示结构的Map封装为List<AppPage>     *      * @param map     * @return List<AppPage>     */    protected List<AppPage> wrapAppPageList(Map<Integer, List<Integer>> friendsPlayMap) {        if (MapUtils.isEmpty(friendsPlayMap)) {            return null;        }        Integer[] appPageIds = friendsPlayMap.keySet().toArray(new Integer[friendsPlayMap.size()]);        List<Integer> appPageIdList = convertToIntegerList(appPageIds);        List<AppPage> appPageList = getAppPagesByPageIds(appPageIdList);        if (CollectionUtils.isNotEmpty(appPageList)) {            for (AppPage appPage : appPageList) {                List<Integer> friendIds = friendsPlayMap.get(appPage.getId());                if (friendIds != null) {                    //将好友List转换为字符串                    appPage.setFriends(StringUtils.join(friendIds, ","));                }            }        }        return appPageList;    }


2、iterator循环过滤
for (Iterator<AppPage> iterator = appPages.iterator(); iterator.hasNext();) {            AppPage appPage = iterator.next();            List<AppPageSupport> pageSupports = appPage.getAppPageSupports();            if (pageSupports != null) {                boolean match = false;                // 如果是下载类的page,需要判断os是否支持                if (appPage.getType() == AppPageConstant.APP_PAGE_TYPE_DOWNLOAD) {                    for (AppPageSupport pageSupport : pageSupports) {                        if (pageSupport.getOs() == os) {                            match = true;                            break;                        }                    }                } else {                    match = true;                }                //如果不匹配,过滤掉                if (!match) {                    iterator.remove();                }            }        }


3、返回多少天前的时间
public static long getExpiredDayTime(int expiredDays) {        if (expiredDays >= 0) {            try {                Date today = format.parse(format.format(new Date()).substring(0, 10) + " 00:00:00");                return (today.getTime() - oneDay * expiredDays);            } catch (ParseException e) {                e.printStackTrace();            }        }        return 0L;    }


3、mongo-java-driver-2.6.1.jar的使用

private MongoDB mongoDB;    public void setMongoDB(MongoDB mongoDB) {        this.mongoDB = mongoDB;    }BasicDBObject query = new BasicDBObject();        query.put(MongoConstant.USER_ID, userId);        DBObject dbObject = mongoDB.getDBByName(MongoConstant.DB_NAME)                .getCollection(MongoConstant.COLL_FRIENDS_PLAY_RESULT).findOne(query);if (dbObject != null) {            //应用列表            BasicDBList friendPlayApp = (BasicDBList) dbObject                    .get(MongoConstant.FRIEND_PLAY_RESULT);            for (Object friends : friendPlayApp) {                List<Integer> friendPlayList = new ArrayList<Integer>();                //好友id列表                BasicDBObject friendIdList = (BasicDBObject) friends;                BasicDBList userPlayBasicDBList = (BasicDBList) friendIdList                        .get(MongoConstant.USER_ID_LIST);                Integer appId = (Integer) friendIdList.get(MongoConstant.APP_ID);                for (Object userPlay : userPlayBasicDBList) {                    BasicDBObject dbUserPlay = (BasicDBObject) userPlay;                    if (dbUserPlay.getLong(MongoConstant.TIME) > time) {                        friendPlayList.add(dbUserPlay.getInt(MongoConstant.USER_ID));                    }                }                if (friendPlayList.size() > 0) {                    resultMap.put(appId, friendPlayList);                }            }

热点排行