• 关于sortedlist 中值的添加,删除,索引测试.


    SortedList 类代表了一系列按照键来排序的键/值对,这些键值对可以通过键和索引来访问。

    排序列表是数组和哈希表的组合。它包含一个可使用键或索引访问各项的列表。如果您使用索引访问各项,则它是一个动态数组(ArrayList),如果您使用键访问各项,则它是一个哈希表(Hashtable)。集合中的各项总是按键值排序。

     总结:用于坐标删除删除的是排序好的队列.跟删除数组差不多.

    在项目两个列进行合并时可以使用这种方式,时间当键, 码当值,自动排序打印.但不能用sortedlist 因为键是唯一的,不能重复.

     项目要做两个txt内容比对.比如 a  b 两个txt

    本来有这么个设想,

    读取a txt 文件 一条数据,开着文件流不关闭.

    读取b txt文件内容,文件流开着,每次读取比如十个数.达到20数后清空前十个,保留后十个作为继续让a的数据比对,因为数据相同的位置相差不多.比如a文件有个值100,假如b文件也有这个100的话,那b文件的100这个值在这个文件中的位置跟A中100的位置差不多,项目是两个读码器同时读一条线的数据,作为相互补充,上道读码器和下道读码器中间隔着一米左右,最终所以想优化成这个效果.

    使用soredlist 删除读取的btxt slist时,比如删除5个

    用到

    for (int i = 0; i < 5; i++)
    {

    //把即将删除的添加到另一个队列.作为即将保存的
    differlist.Add(n_readlist.GetKey(i), n_readlist.GetByIndex(i));

    //开始删除

    n_readlist.RemoveAt(i);
    }

    1:错误1:上边这种方法是不适合这种项目需求的.

    因为add之后,里边的值是按照序列排序了,位置变化了.所以本来想删除第一个加进来的,可能把别的值删除掉了

    2:错误2: 上边的循环写法错误,因为每次删除之后,循序上移,原先的1位置的值移到了0位置.循环到第二次的时候删除的值实际是 最开始的第三个值,而第二个值被漏掉了.

    如图:循环到第二次时, 实际要求删除第一个值.如图删除前

    删除后第一个值还存在,第二个值没了.

     而下边是字典dictionary 加入的数值之后的数据结构,两列中间用逗号隔开,起边多了一项排序数值,而且数据顺序没有变化.

  • 相关阅读:
    搜索进阶1、八数码(HDU1043)
    D.迷宫2 (BFS+优先队列)
    小H的询问(线段树)
    B.迷宫(BFS)
    【UVA】10935 Throwing cards away I(STL队列)
    【UVA】10391 Compound Words(STL map)
    【UVA】12100 Printer Queue(STL队列&优先队列)
    【UVA】1596 Bug Hunt(模拟)
    【UVA】201 Squares(模拟)
    【UVA】1595 Symmetry(模拟)
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/6812806.html
Copyright © 2020-2023  润新知