本帖最后由 xiaobadi 于 2011-02-22 13:47:59 编辑

解决方案 »

  1.   

    这是什么需求?都用了数据库了,那合并列太容易了,直接distinct就可以,
      

  2.   

    回2L,distinct是合并了相同列,LZ要得是合并相邻的相同列,并且把编号累计起来
      

  3.   

    我觉得可以实现这样一个数据结构:
    1,类似于栈,先进后出
    2,每次压栈的时候,如果发现栈顶的元素与将压入的元素相同,则放弃压入,并将列号合并一次,赋给栈顶的元素,如果不同,则先将栈顶元素取出,再进行步骤2
    3,每次出栈的元素,放入到队列中,最后一次便利一次就行了如果不用考虑相邻的关系,用Map,以元素为key,编号为value,每次发现有相同的key,合并value,最后遍历一下就好了。
      

  4.   

    先扫描,再显示
    1. 每一行放在一个List中
    2. 用一个Map存储表示行的List和他对应的夸行数
    3. 每一行和上一行进行比较,如果相同,则在Map中存储的行的夸行数加1
    4. 显示时从Map中拿出行与它对应的夸行数来显示 (你要想办法保存这些行的顺序)
      

  5.   

    恩 用map 存储数据 并判断是否重复 然后记录重复出现的ID
      

  6.   

    直接用HashSet不就好了,都不需要做判断的,set中不可能有相同数据的。
      

  7.   

    我有个思路:
    每一列都单独使用一个List存储所有的数据,用一个List<List>存储整张表,如果记录相同,那么list对象也会相等,用一个if语句判断是否相等,如果相等,则不添加进List<List>或者可以使用合并的方式,如使用一个Holder类对象存储一个列的所有数据,整张表使用List<Holder>存储。如果记录相同,那么holder类对象也会相等,那么则不添加进List<Holder>
      

  8.   

    说起来简单,我现在已经搞好了,但是写的实在太乱,而且最主要的问题就是头部和左边列的合并了,因为这个合并和本身的List没什么关系。不知道大家有没有什么好的算法?
      

  9.   

    如果是数据库的话,就是GROUP BY,左面第一个字段类似MySQL 的GROUP_CONCAT()