本帖最后由 qiudong_5210 于 2011-01-21 10:39:10 编辑

解决方案 »

  1.   

    可以在后台代码中用事务,也可以在数据库中用事务。后台类中也行,弄个字段保存ArrayList长度,更新数据库时影响行数=ArrayList长度时成功,否则回滚。
      

  2.   

    很多数据使用ArrayLIst保存,是否合理
    通过sqldataadapter更新数据
    ArrayLIst比较使用list.Intersect() list.Except() 
      

  3.   


    我们要把数据保存在数组中,然后判断数据,选择对数据的操作list.Intersect() list.Except()   
    是用的linq吗?   我们这不用linq的
      

  4.   

    我感觉主要是在判断那里节省时间,那样就好一点了,每个ArrayList中有8万条数据,从判断到最后操作完要一分钟,太慢了
      

  5.   

    有没有什么方法可以快速的判断出两个ArrayList中的元素,使每个ArrayList中剩下对方没有的数据?
      

  6.   

    不建议用ArrayList,因为它里面元素的类型是object,比较时会有转换类型的过程,速度慢。可考虑用泛型集合存储string。
      

  7.   

    我们这要求用数组,
    用数组还要去除掉两个数组中相同的数据
    留下对方没有的数据,然后对这些数据进行操作,如果用string数组的还要用ArrayList存储,
    所以直接用Arraylist了
      

  8.   

    先Delete  数据库中在ArrB中存在的数据
    再Insert ArrB中的数据
    是不是效果一样的
      

  9.   

    如果两个string数组在比较的时候有没有啥快速的方法啊?
      

  10.   

    如果非得集中一大批再比较处理,就在每条数据发生变化时,将符合比较条件的放到一个容器类里,到时间集中处理。还有为什么不用datatable呢,看你的问题好像数据是常驻内存的吧。
      

  11.   

    假设ArrayListA中的数据是:"a","b","c","d","e"
    假设ArrayListB中的数据时:"c","d","e","f","g"
    要求最后A中剩下a,b
    B中剩下f,g
    把A中的数据从数据库中删除
    把B中的数据添加到数据库中实际操作中每个ArrayList不低于40万条数据,
    要求可以承受百万级数据的考验
      

  12.   

    我原来用Datatable,我们头说速度有点慢
    我就用ArrayList了,
    发现效率提高了一倍
      

  13.   

    到底是ArrayList还是用数组啊?ArrayList一种集合。
      

  14.   

    我们要求用数组早上问我们头,ArrayList算是数组还是集合头说,是数组
      

  15.   

    关键是给定的两组数据是否按某种规则排序过,如果排序过则好办了,否则几乎难以优化。
    比如:
    abc acd bcd bee
    aee abc aee bii bee b88 bbb
    是排序过的两组数据,如果用一般两层循环遍历比较,最坏的可能是需要循环比较4*7=28次,但首字母是a的单词肯定不会跟首字母是b的单词相等,所以可以分为两组:a开头的和b开头的,最坏的可能是需要循环比较2*3+2*4=14次,比原先少。
    如果排序过的可以像上面那样分而治之,组内元素个数越少效率越高,没排序过的不知道还能怎样优化。
      

  16.   

    数据时读出来 ,不过是在转换成ArrayList之前,排过序了
      

  17.   

    ArrayList开销当然打了,比Table就快一点,因为Table要维护类黑列
    ————
    假设ArrayListA中的数据是:"a","b","c","d","e"
    假设ArrayListB中的数据时:"c","d","e","f","g"
    要求最后A中剩下a,b
    B中剩下f,g
    这牵扯了 添加和删除ArrayList添加就是抛弃形式的copy,就是说他会产生很多的副本
    IList<>会在快一点,数组会在快一点
    使用折半循环会在快一点
    就是说每次比对2个数据,下标每次向下移动2个
    但是要求循环要能被2整除。
    在开一个线程做双处理,还能快一点
    这样性能就压榨出来了
    但是,这种程序如果有一点错误调试也很麻烦
    ————
    还有一个方式就是,不管他是什么,统统写入数据库
    然后给他一个临时的状态比如“数据正在审核”
    到了晚上没人的时候开一个计划任务,这样明天数据就处理好了
    ————
    超时好说,你这样写executionTimeout=“9999999999999999999999”就没问题了