一段代码

来源:互联网 发布:php const调用赋值 编辑:程序博客网 时间:2024/04/28 12:49
-------------------------
            // 跳过表头,否则也会被读取
            csvReader.readHeaders();

            while (csvReader.readRecord()) {
                int columns = csvReader.getColumnCount();
                int countersNum = this.CounterIDs.length;
                // 把counterId对应的值分别组织到对应的list中
                for (int i = 0; i < countersNum; i++) {
                    String counterValue = csvReader.get(columns - countersNum + i);

                    String counterId = this.CounterIDs[i];
                    List counterValuesList = new ArrayList();
                    counterValuesList.add(counterValue);

                    if (counterIdMap.get(counterId) == null) {
                        counterIdMap.put(counterId, counterValuesList);
                    } else {
                        List tempList = (List) counterIdMap.get(counterId);
                        tempList.add(counterValue);
                    }
                }
            }

       




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




            // 跳过表头
            csvReader.readHeaders();

            while (csvReader.readRecord()) {

                int columns = csvReader.getColumnCount();

                // counterId映射value的map
                Map<String, Double> counterIdWithValue = new HashMap<String, Double>();

                // 把counterId与对应的值组织到map里
                for (int i = 0; i < countersNum; i++) {
                    counterIdWithValue
                            .put(this.CounterIDs[i], Double.valueOf(csvReader.get(columns - countersNum + i)));
                }

                // 把"开始时间"作为一个key
                String granularityKey = csvReader.get(1);

                // 把“RNC Managed NE”、“NodeB”、“本地小区标识”的值拼成key
                String areakey = csvReader.get(4) + "_" + csvReader.get(8) + "_" + csvReader.get(10);

                // 判断当前的时间粒度分组在timeKeymap中是否存在
                // 如果不存在将其作为一个key,再将当前“小区”和对应的“性能值”放入“valueMap”中
                Map valueMap = new HashMap<String, Map<String, Double>>();
                valueMap.put(areakey, counterIdWithValue);

                // 如果为空,那么新创建的map就是“时间粒度key”对应的值
                if (mapElementsGroupByGranularity.get(granularityKey) == null) {
                    mapElementsGroupByGranularity.put(granularityKey, valueMap);
                } else {
                    // 如果不为空,通过“时间粒度key”得到对应map值,把属于同一时间粒度的小区性能化为一组
                    Map valueMAP = (HashMap<String, Map<String, Double>>) mapElementsGroupByGranularity
                            .get(granularityKey);
                    valueMAP.put(areakey, counterIdWithValue);
                }
            }
       






0 0
原创粉丝点击