taitoushan 2010-04-09 22:02
浏览 182
已采纳

求一个简便的算法

兄弟们帮忙分析一个数据分析的算法呀
假如有这样的二维数据
001 张三 1300112 2500.0
001 张三 2222223 3000.0
003 李四 3124213 2800.0
002 老赵 5432545 4500.0
002 老刘 5432545 3400.0
003 王六 3124213 2800.0
假如我要按照第一列作为关键字整理的话,去掉重复的,最后只有001,002,003
现在我要把数据按照第一列整理成三行,第二列取第一次出现的,即001取张三,002 取老赵,003取李四
第三列的处理同第二列
第四列把相同的关键字的数据相加 ,即001对应5500.0 ,002对应7900.0 ,003对应5600.00
整理出来的数据格式如下:
001 张三 1300112 5500.0
002 老赵 5432545 7900.0
003 李四 3124213 5600.0

该怎么写算法实现呢?

这个只是对数据的操作,不是数据库

  • 写回答

2条回答 默认 最新

  • waterdh1 2010-04-09 22:12
    关注

    利用Map就可以实现了,把第一列作为key,其他几列合并成一个对象作为value。伪代码如下:
    遍历你的数据列表:
    检查HashMap中有无这一key, 若有,则把value中的第4列相加。
    若无,将key和value放入map.

    最终的map中的结果就是你所需要的。
    如果需要对第一列排序,可以用TreeMap,要不就用HashMap

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 vhdl+MODELSIM
  • ¥20 simulink中怎么使用solve函数?
  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题