我想在c#中使用ArrayList添加和删除大量数字

金贤秀

我想知道输入大量数字时 'arraylist' 的性能。

'arraylist' 添加效果很好。但是删除'arraylist'需要很多时间。

例如,当我输入数字“10000000”时,添加速度很快。移除大约需要 15 分钟。

如何解决?

public partial class Form1 : Form
{
    Stopwatch stopwatch = new Stopwatch();
    ArrayList arrayList = new ArrayList();
    Hashtable hashtable = new Hashtable();
    HashSet<string> hashSet = new HashSet<string>();
    SortedList sortedList = new SortedList();
    Stack stack = new Stack();
    Queue queue = new Queue();

    static List<string > list = new List<string>() ;
    static Random rand = new Random(50000);

    static long count = 0;
    static  string inputCount = "";

    public Form1()
    {
        InitializeComponent();


    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        inputCount = countTextbox.Text;
        count = Convert.ToInt64(inputCount);
    }


    private void arrayListBtn_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < count; i++)
        {
            list.Add($"T_{i.ToString("000000000")}");
        }

        Console.WriteLine(list.Count);
        stopwatch.Reset();
        stopwatch.Start();

        for (int i = 0; i < list.Count; i++)
        {
        }
        foreach (var item in list.ToList())
        {
            arrayList.Add(rand);
        }
        Console.WriteLine(arrayList.Count);
        stopwatch.Stop();
        arrayListAddTextBox.Text = stopwatch.Elapsed.ToString();

        stopwatch.Reset();
        stopwatch.Start();

        foreach (var item in list.ToList())
        {
            arrayList.Remove(item);
        }
        Console.WriteLine(arrayList.Count);
        stopwatch.Stop();
        arrayListRemoveTextBox.Text = stopwatch.Elapsed.ToString();

    }
靠背

如何解决?

要修什么?ArrayList这样工作。内部它包含数组,因此 remove 会将一些数据从数组的一部分复制到另一部分。因此,如果您从头开始删除,它将移动除一个元素之外的所有元素。

此外,ArrayList将浪费时间装箱/拆箱,因为ArrayList将数据存储为object. 此外,找到要删除的元素需要很多时间。

您可以在源代码中找到更多数据

如果您需要添加和删除 - 为它找到更好的收藏。喜欢HashSet<>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我想在python中使用linspace在RFMIn和RFMax之间使用10个数字

来自分类Dev

我想在表单中使用相同的按钮来首先添加元素,然后删除元素

来自分类Dev

我想在具有面板ArrayList的ScrollPane中使用BoxLayout

来自分类Dev

我想在滚动导航中添加和删除活动类

来自分类Dev

我想在C Sharp中动态添加/删除标签

来自分类Dev

我想在psql中使用alter命令添加约束

来自分类Dev

我想在Jquery中使用禁用和启用的功能

来自分类Dev

我想在控制台和Intellij中使用Git

来自分类Dev

我想在 Ubuntu 中使用 MS Power Point 和 Excel

来自分类Dev

如何将我想在 C++ 中使用的 C 库的库路径添加到环境中

来自分类Dev

c#:我想在 feval 命令中使用路径目录

来自分类Dev

如何在C ++中使用Class函数保存大量数字

来自分类Dev

是否有在C ++中使用大量数字的聪明方法

来自分类Dev

我想在R中使用ggmap删除情节中的美学图例

来自分类Dev

我想在arrayformula中使用此查询

来自分类Dev

我想在 JDK 8 中使用 `jshell`

来自分类Dev

我想在android studio中使用qulifier <large>,但是无法添加目录layout-large

来自分类Dev

我想在所有模块文件中使用OC模式添加代码

来自分类Dev

在PHP中使用大量数字输出0

来自分类Dev

我想在 Python 中使用 JSON 来保存用户和密码

来自分类Dev

Android使用ArrayList向不同的ListView添加和删除

来自分类Dev

使用迭代器从ArrayList添加,删除和打印

来自分类Dev

Android使用ArrayList向不同的ListView添加和删除

来自分类Dev

在C ++中使用添加和删除节点功能实现模板二进制搜索树

来自分类Dev

C ++,读取和保存大量数字

来自分类Dev

PyQt4 ----我想在我的代码中使用closeEvent()

来自分类Dev

我想在 Bash 脚本中使用 sed 删除日志文件中“var”变量中包含的字符串模式

来自分类Dev

在C中使用for循环将数字添加到数组

来自分类Dev

我想在使用mongoskin的同时在mongoDB中使用runCommand

Related 相关文章

  1. 1

    我想在python中使用linspace在RFMIn和RFMax之间使用10个数字

  2. 2

    我想在表单中使用相同的按钮来首先添加元素,然后删除元素

  3. 3

    我想在具有面板ArrayList的ScrollPane中使用BoxLayout

  4. 4

    我想在滚动导航中添加和删除活动类

  5. 5

    我想在C Sharp中动态添加/删除标签

  6. 6

    我想在psql中使用alter命令添加约束

  7. 7

    我想在Jquery中使用禁用和启用的功能

  8. 8

    我想在控制台和Intellij中使用Git

  9. 9

    我想在 Ubuntu 中使用 MS Power Point 和 Excel

  10. 10

    如何将我想在 C++ 中使用的 C 库的库路径添加到环境中

  11. 11

    c#:我想在 feval 命令中使用路径目录

  12. 12

    如何在C ++中使用Class函数保存大量数字

  13. 13

    是否有在C ++中使用大量数字的聪明方法

  14. 14

    我想在R中使用ggmap删除情节中的美学图例

  15. 15

    我想在arrayformula中使用此查询

  16. 16

    我想在 JDK 8 中使用 `jshell`

  17. 17

    我想在android studio中使用qulifier <large>,但是无法添加目录layout-large

  18. 18

    我想在所有模块文件中使用OC模式添加代码

  19. 19

    在PHP中使用大量数字输出0

  20. 20

    我想在 Python 中使用 JSON 来保存用户和密码

  21. 21

    Android使用ArrayList向不同的ListView添加和删除

  22. 22

    使用迭代器从ArrayList添加,删除和打印

  23. 23

    Android使用ArrayList向不同的ListView添加和删除

  24. 24

    在C ++中使用添加和删除节点功能实现模板二进制搜索树

  25. 25

    C ++,读取和保存大量数字

  26. 26

    PyQt4 ----我想在我的代码中使用closeEvent()

  27. 27

    我想在 Bash 脚本中使用 sed 删除日志文件中“var”变量中包含的字符串模式

  28. 28

    在C中使用for循环将数字添加到数组

  29. 29

    我想在使用mongoskin的同时在mongoDB中使用runCommand

热门标签

归档