- 浏览: 315978 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
poterliu:
太棒了,这正是我要的效果
带复选框(checkbox)的下拉列表 -
no_bao:
<div class="quote_title ...
java使用Map进行分组统计 -
a164906480:
不好意思啊,不少东西,我用的时候就是转int的时候光报异常。 ...
java使用Map进行分组统计 -
a164906480:
<pre name="code" c ...
java使用Map进行分组统计 -
a164906480:
问一下你后面的数是怎么加的吗
java使用Map进行分组统计
用java读取txt文本,并根据ip段分组合计|后面的值,即ip相同数字累加
127.0.0.1|395
127.0.0.2|390
127.0.0.3|370
127.0.0.4|340
127.0.0.3|339
127.0.0.1|338
127.0.0.5|521
--------------运行结果-------------
127.0.0.5 === 521
127.0.0.3 === 709
127.0.0.4 === 340
127.0.0.2 === 390
127.0.0.1 === 733
-------------------------------
java代码 根据Map中的Key值,进行数值累加
是不是文本内容不对?
这块的思路就是使用了map的key值会被覆盖,可以利用这一点,key值相等的话把value值相加,具体可以自己写一下,这个小列子 仅仅是个思路而已
这一块是不是少些东西
127.0.0.1|395
127.0.0.2|390
127.0.0.3|370
127.0.0.4|340
127.0.0.3|339
127.0.0.1|338
127.0.0.5|521
--------------运行结果-------------
127.0.0.5 === 521
127.0.0.3 === 709
127.0.0.4 === 340
127.0.0.2 === 390
127.0.0.1 === 733
-------------------------------
java代码 根据Map中的Key值,进行数值累加
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Iterator; import java.util.Set; /** * 读取txt文本 * ip 相等 数字累加 * @author snail * */ public class readtxt { /** * 根据传递的路径File对象 解析txt * @param file * @return * @author */ public HashMap<String, Integer> readLogInfo(File file) { HashMap<String, Integer> map = new HashMap<String, Integer>(); // InputStreamReader inputStreamReader = null; // 创建文件输入流缓存对象 BufferedReader bufferedReader = null; try { if(file!=null){ inputStreamReader = new InputStreamReader(new FileInputStream(file),"GBK"); bufferedReader = new BufferedReader(inputStreamReader); String lineString =""; String[] strArr=null; int value=0; while((lineString = bufferedReader.readLine()) != null){ strArr=lineString.split("\\|"); if(map.get(strArr[0])!=null){ value=Integer.parseInt(map.get(strArr[0]).toString())+Integer.parseInt(strArr[1]); }else{ value=Integer.parseInt(strArr[1]); } map.put(strArr[0], value); } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (bufferedReader != null) { bufferedReader.close(); } if(inputStreamReader!=null){ inputStreamReader.close(); } } catch (IOException e) { e.printStackTrace(); } } return map; } public static void main(String[] args) { // TODO Auto-generated method stub try { // txt 文本路径 String filePath="E:"+File.separator+"a.txt"; File file = new File(filePath); readtxt rd = new readtxt(); HashMap<String, Integer> map=rd.readLogInfo(file); if(map !=null){ Set keySet = map.keySet();//返回键的集合 Iterator it = keySet.iterator(); while(it.hasNext()) //第一种迭代方式取键值 { Object key = it.next(); System.out.println(key+" === "+map.get(key)); //根据键来取对应的值 } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
评论
4 楼
no_bao
2014-01-14
a164906480 写道
不好意思啊,不少东西,我用的时候就是转int的时候光报异常。
是不是文本内容不对?
这块的思路就是使用了map的key值会被覆盖,可以利用这一点,key值相等的话把value值相加,具体可以自己写一下,这个小列子 仅仅是个思路而已
3 楼
a164906480
2014-01-07
不好意思啊,不少东西,我用的时候就是转int的时候光报异常。
2 楼
a164906480
2014-01-07
String[] strArr=null; 42. int value=0; 43. while((lineString = bufferedReader.readLine()) != null){ 44. strArr=lineString.split("\\|"); 45. if(map.get(strArr[0])!=null){ 46. value=Integer.parseInt(map.get(strArr[0]).toString())+Integer.parseInt(strArr[1]); 47. }else{ 48. value=Integer.parseInt(strArr[1]); 49. } 50. map.put(strArr[0], value); 51. } 52.
这一块是不是少些东西
1 楼
a164906480
2014-01-07
问一下你后面的数是怎么加的吗
发表评论
-
xml验证二----java根据xsd验证xml
2013-11-07 09:47 2428xml 转换 xsd 参考 http://51876 ... -
xml验证之----xml转换为xsd(trang.jar)
2013-11-07 09:43 73691、执行环境 Trang的执行环境:JRE1.4+ ... -
JDBC事务的保存点处理
2013-05-10 09:55 1712JDBC事务的保存点处理 ... -
java随机数
2013-01-21 10:23 961public static String getRandom ... -
Quartz使用指南(七)-----Spring中使用Quartz进行作业调度
2012-10-22 09:10 18431 Spring中使用Qu ... -
Quartz使用指南(六)-----监听器及存储
2012-10-22 09:10 17071 触发器的监听器和作业的监听器(Trigge ... -
Quartz使用指南(五)-----Cron触发器(CronTrigger)
2012-10-22 09:09 2097<!--[if !supportLists]--> ... -
Quartz使用指南(四)-----触发器(Triggers)
2012-10-19 18:04 31754 触发器(Triggers) 与Job相比,Trig ... -
Quartz使用指南(三)-----标识符、 作业和作业详情(Identifiers&Jobs&JobDetails)
2012-10-19 17:54 1532标识 ... -
Quartz使用指南(二)-----作业和触发器Job&Trigger
2012-10-19 17:49 1828我们可以使Scheduler简单地执行一个实现了Job接 ... -
Quartz使用指南(一)-----Quartz简介
2012-10-19 17:47 2025<!--[endif]--> ... -
javamail无需邮箱地址发送邮件
2012-10-10 10:06 2177直接通过目标邮件地址查找到该信箱地点的服务器的地址,然后 ... -
利用jawin完成调用window中dll的调用(java调用dll)
2012-10-09 21:53 1281jawin 可以对dll中的方法进行调用,也可以调用co ... -
struts2 中使用<s:iterator /> 标签解析javaBean中的String[] 数组
2012-09-28 16:21 1850struts2 中使用<s:iterator ... -
MyEclipse6.0 注册码
2012-09-21 15:53 5package test; import java.i ... -
java , String.split (String regex) 分隔 ^ | 等特殊字符
2012-07-17 12:17 1307String str="abc^def^gh& ... -
Ftp上传文件调用java代码
2011-12-24 11:11 1995import org.apache.commons.io.IO ... -
Ftp上传文件客户端java代码
2011-12-24 11:08 1573package ftp; import java.io.Da ... -
java执行sql处理类,包括CLOB,Blob字段的处理
2011-11-28 12:27 2881import java.io.CharArrayWriter; ... -
ArrayList 排序实例
2011-11-28 12:27 2201ArrayList 排序实例 import java.uti ...
相关推荐
这个接口是Java 8中Stream API的`groupingBy`函数的一种扩展,允许我们对集合对象进行更复杂的分组操作。`GroupingBy`可以接受一个函数作为参数,这个函数定义了如何从每个元素中提取分组键,然后根据这些键将元素分...
Java8中多字段分组统计是指根据多个字段对数据进行分组和统计,生成相应的统计结果。在本文中,我们将详细介绍Java8中多字段分组统计的实例代码,并对其进行详细的解释。 多字段分组统计的实现 多字段分组统计的...
这里我们将深入探讨如何使用Java 8的Stream API对集合进行多字段分组和统计个数。 首先,我们有一个`User`实体类,包含了`id`, `userName`, `password`, `age`等字段。这个例子中,我们想要根据`userName`和`age`两...
当我们需要对List进行分组统计时,`reduce()`方法的三个参数版本就显得特别有用。本文将深入探讨如何利用这三个参数的`reduce()`方法对List进行分组统计操作。 首先,`reduce()`方法的签名如下: ```java <U> U ...
* 数据分析:可以按照某个或多个条件对数据进行分组,然后进行统计、分析和处理。 * 数据处理:可以按照某个或多个条件对数据进行分组,然后进行数据清洗、转换和处理。 * 报表生成:可以按照某个或多个条件对数据...
2. 如何使用Java集合框架(如List, Map)来存储和处理分组后的数据。 3. 数据库查询优化,如SQL的GROUP BY语句与DATE_TRUNC函数结合,按周对数据进行聚合。 4. 如何读取和处理Excel数据,可能使用Apache POI库或者...
在Java编程语言中,Map和Set是两种非常重要的集合类型。Map主要用于存储键值对,而Set则是一个不...在实际开发中,这一技巧常常用于去重、分组、统计等场景。理解并熟练运用这些方法,将有助于提升你的Java编程能力。
在本项目“java大作业之词频统计”中,我们主要关注的是如何使用Java 8的Stream API来实现一个高效且简洁的词频统计程序。这个项目不仅包含了源代码实现,还提供了答辩PPT,方便理解和展示项目的核心思想。下面我们...
在Java编程中,分组是一种常见的数据处理方式,它能够帮助我们将数据按照特定的属性或条件进行归类,便于后续的分析和操作。在Java 8及以后的版本中,Stream API提供了强大的分组功能,这在处理大量数据时尤其有用。...
本实验报告展示了使用java实现英文文档分词的整个过程,涵盖文档读取、分词、词频统计、结果输出等方面的内容。该实验可以帮助读者了解java语言在自然语言处理中的应用,并且提供了一个基本的英文文档分词的实现方式...
在这个案例中,我们将探讨如何使用`groupingBy`进行多字段分组以及如何实现分组求和。 首先,`groupingBy`的基本用法是根据一个单一的属性将集合元素分组。例如,给定一个包含水果名称的列表,我们可以很容易地按照...
在Java中,可以使用`HashMap`或`TreeMap`等数据结构,根据分组键存储对应的值列表,然后对每个分组进行聚合计算。 6. **统计函数计算**:对于COUNT,可以直接统计分组内的元素数量;AVG需要先累加所有值,然后除以...
在Java环境中,与Elasticsearch进行交互通常会使用官方提供的Java REST客户端。本文将详细介绍如何构建一个封装了基本增删改查功能的Elasticsearch Java工具类。 首先,我们需要引入Elasticsearch的Java客户端依赖...
此外,为了更好地管理和操作这些数据,开发者可能还使用了`Stream` API,这是Java 8引入的新特性,可以方便地对集合进行过滤、映射、分组等操作。例如,使用`Stream`可以很容易地找出打卡异常的员工,或者计算每个...
- 数据分析:对带有地区信息的大量数据进行统计分析时,地区码便于快速分组和计算。 总之,"地区码与地区名称相互转换java代码11.zip"是一个实用的工具,可以帮助开发者在处理地理位置相关的项目时提高效率。理解...
5. **按薪资是否高于8000进行分组**:使用`partitioningBy`方法进行分组。 ```java Map, List<Employee>> partitionedBySalary = employees.stream() .collect(Collectors.partitioningBy(employee -> employee....
如需根据`Rolemenu`的`roleid`属性进行分组,可以使用`groupingBy()`方法。这会返回一个`Map, List<Rolemenu>>`,键是`roleid`,值是对应`roleid`的所有`Rolemenu`对象的列表。 4. 单列求和 Java 8提供了针对不同...
标签“map”可能指的是MapReduce模型中的“Map”操作,也可能是数据结构中的“Map”或“HashMap”,它在各种编程语言中被广泛使用,如Java的HashMap、C++的std::map等。这些数据结构提供了一种通过键来存储和检索值...