c#数组与集合_将数组a和数组b合并为数组c

c#数组与集合_将数组a和数组b合并为数组cc#数组与集合

大家好,又见面了,我是你们的朋友全栈君。

数组在内存中是连续存储的,所以索引速度很快,增删改元素也很简单。但是数组是分配在一块连续的数据空间上的,因此分配空间的同时就必须确定好空间的大小,空间的连续也导致增删改及存储元素的效率很低。如在数组中添加元素,就需在内存空间中“腾出”一块地方,别的元素再往后“cuan”位置。还有在声明数组时,必须指定数组长度,长也不好短也不行,怎么办?于是集合出现了。

ArrayList示例:

static void Main(string[] args)
        {
            ArrayList list = new ArrayList();
            list.Add(true);
            list.Add(1);
            list.Add("张三");
            list.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8 });
            list.AddRange(list);
            //list.Clear();//清除
            //list.Reverse();//反转
            //list.InsertRange(0, new string[] {"李四"});//指定位置插入集合
            if (list.Contains("张三"))//判断包含指定元素
            {
                Console.WriteLine("已经有这个屌丝啦~");
            }
            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(list[i]);
            }
            Console.ReadKey();
        }

List<>示例:

static void Main(string[] args)
        {
            List<int> lt = new List<int>();
            lt.Add(1);
            lt.Add(2);
            lt.Add(3);
            lt.AddRange(new int[] { 4, 5, 6, 7, 8, 9 });
            for (int i = 0; i < lt.Count; i++)
            {
                Console.WriteLine(lt[i]);
            }
            Console.ReadKey();
        }

Hashtable示例:

static void Main(string[] args)
        {
            Hashtable hash = new Hashtable();
            hash.Add(1, "张三");
            hash.Add(2, true);
            hash.Add(false, "错误的~");
            foreach (var h in hash.Keys)
            {
                Console.WriteLine("键是{0},值是{1}", h, hash[h]);
            }
            Console.ReadKey();
        }

Dictionary示例:

 static void Main(string[] args)
        {
            Dictionary<int, string> dir = new Dictionary<int, string>();
            dir.Add(1, "张三");
            dir.Add(2, "李四");
            dir[1] = "干掉你";
            foreach (KeyValuePair<int, string> kv in dir)
            {
                Console.WriteLine("键是{0},值是{1}", kv.Key, kv.Value);
            }
            Console.ReadKey();
        }

小结:

ArrayList集合对数据类型没有要求,是因为ArrayList集合中存储的数据类型默为object类型,其它类型与object类型进行转换时就会发生“拆箱装箱”操作,而List集合在声明集合时就确定了数据类型,所以List集合与ArrayList集合相比是相对安全的哦。键值对集合与字典集合同理。

转载于:https://www.cnblogs.com/huangxuQaQ/p/10732121.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106872.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月21日 下午11:20
下一篇 2022年4月21日 下午11:20


相关推荐

  • java+sm4+加密算法_SM4加密算法实现Java和C#相互加密解密

    java+sm4+加密算法_SM4加密算法实现Java和C#相互加密解密SM4加密算法实现Java和C#相互加密解密近期由于项目需要使用SM4对数据进行加密,然后传给Java后台,Java后台使用的也是SM4的加密算法但是就是解密不正确,经过一步步调试发现Java中好多数据类型与C#的相同的数据类型是存在不同的比如:byte在Java中范围是-127~128,而C#中的范围是0~255,这就导致使用C#的加密的明文产生的密文到Java中解密不正确。再一次偶尔的上网中看…

    2026年4月17日
    5
  • Oracle-帝国的崛起![通俗易懂]

    Oracle-帝国的崛起![通俗易懂][编者本段]Oracle的起源  oracle是瓦砾(YinXu)出土的甲骨文(oracleboneinscriptions)的英文通译的第一个单纯词,在英语里是“神谕”的意义。  [编者本段]Oracle市场份额  在二零零七年Oracle在数据库市场仍然保持着强劲的大势,盘踞了数据库领域48.6%的市场份额。作为数据库软件市场的领跑者,Oracle数据库从上年推出了11g版本以来,在整个

    2026年2月23日
    5
  • Java的Scanner输入时,next()和nextLine()的区别[通俗易懂]

    Java的Scanner输入时,next()和nextLine()的区别[通俗易懂]nextLine()不要和其他next方法一起用!!!尤其nextLine()不要放在它们后面!!!这个问题已经坑了我好多次了,但是每次都没有在意,主要是没反应过来出现问题的原因。今天阿里内推测验,又被nextLine()狠狠坑了一下。逻辑思路都是对的,就输入的数据不对。因为限时半小时,所以时间比较紧张,最后还是没弄出来。后来百度查了两者区别,果然问题是出在这里,改完之后问题就解决了。可怜我的…

    2022年6月10日
    44
  • idea2021mac激活码[免费获取]「建议收藏」

    (idea2021mac激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlbnNlSWQiOi…

    2022年3月21日
    161
  • CEGUI学习

    CEGUI学习先来个引子,CEGUI是一个游戏UI库,开源,使用XML作资源定位,支持lua脚本,支持多字节语言的显示,其功能可以说是十分强大的,而且非常灵活,目前的稳定版本是0.5,可见其离发布还有一段距离,bug和未完成的东西都不少,然而这也是它的魅力之一,我们可以对其进行修改和扩充。使用CEGUI完全可以制作出一流水准的游戏UI来。其次,也是比较主要的,它有几款指定的编辑器,其实UI库都

    2022年7月24日
    12
  • java中Scanner的简单用法

    java中Scanner的简单用法一.用法1.先导入Java.util.Scanner包importjava.util.Scanner;2.创建Scanner类的对象Scannersc=newScanner(System.in);//创建对象sc//3.创建一个变量来接收数据inta=sc.nextInt();doubleb=sc.nextDouble();floatc=sc.nextFloat();二.使用…

    2022年7月20日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号