c# 集合的长度为什么是可变的
摘要: 写在前面:此随笔仅仅是作为个人学习总结,有不对的地方,请各位前辈指正O(∩_∩)O........
一: 引入
在学习集合之前我们都学习过数组.可以知道数组的长度在声明的时候就已经被固定了,不可以增加或者修改.这个时候我们想要有数组的效果,又可以随意的改变长度,那怎么办呢?此时我们的集合就出现啦.
在一个集合中我们可以通过Add(),AddRange()方法在集合末尾添加元素.可以通过Remove(),RemoveAt()方法移除元素.如果此时我们获取这个集合的Count属性值,就会发现这个值在不断改变.
二: 为什么
首先我们来了解一下集合里面的两个属性:
Count: 表示当前这个集合内元素的个数 ( Gets the number of elements actually contained in the System.Collections.ArrayList.)
Capacity: 表示当前这个集合可以容纳的元素个数 (Gets or sets the number of elements that the System.Collections.ArrayList can contain.)
怎么说呢?
首先我们声明一个集合:
ArrayList list = new ArrayList();
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
结果为: 0 , 0
给集合添加一个值:
ArrayList list = new ArrayList();
list.Add("abc");
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
结果为: 1 , 4
给集合添加四个值:
(代码略)
结果为: 4 , 4
给集合添加五个值:
(代码略)
结果为: 5 , 8
给集合添加九个值:
结果为: 9 , 16
移除一个值:
结果为: 8 , 8
由此我们可以看到,当我们只声明集合没有赋值的时候,没有可以容纳的个数.但是一旦我们往集合里添加数据,就会存在4个可以容纳的空间,超过4个就会翻倍的去申请.
当我们移除元素的时候,集合可以容纳的数目也会减少
c# 集合的长度为什么是可变的的更多相关文章
- 解决问题:怎样在页面获取数组和List集合的长度
解决问题:怎样在页面获取数组和List集合的长度 我们在前端遍历后台数据的时候,经常是从后台传过来一个数组或List集合,在前端页面就可以使用JSTL的<c:For each>标签遍历数据 ...
- jsp 遍历集合——关于获取集合的长度
一,关于获取集合长度问题 在jsp页面中不能通过${list.size}取列表长度,而是 EL表达式不能获取集合的长度 如:${list.size} <%@ taglib uri="h ...
- jsp页面获取集合的长度
createTime--2016年10月12日16:20:02Author:Marydonjsp页面获取集合的长度 在jsp页面与js中不能通过${list.size}取列表长度,而是引入jstl ...
- Jsp中如何在<c:forEach>标签内获取集合的长度
利用jstl标签functions的prefix属性的length属性值 1.首先在jsp页面导入jstl function标签 <%@ taglib prefix="fn" ...
- OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法
字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 ...
- java中数组、list、泛型集合的长度
1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这 ...
- 在JSP页面获取集合的长度
在jsp页面上经常遇到得到集合长度.字符长度.字符切取等应用需,在2.0以前这种需是许多程序员对JSTL及为不满意的地方之一.为此在2.0 中添加了functions标签,其提供对以上需求的支持. 使 ...
- mybatis数组和集合的长度判断及插入
1.在使用foreach的是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下4种情况: 如果传入的是单参数且参数类型是一个List的时候,collect ...
- 统计java中字符串,数组,集合大小(长度)
字符串长度用String.length(); 数组用String[].length; 集合用collection.size();
随机推荐
- centos7 搭建jenkins服务器
具体可参考:https://blog.csdn.net/it_lihongmin/article/details/80814384 注意: 1. 修改主目录:默认是/var/lib/jenkins, ...
- 3种自增ID说明
自增ID 1.@@identity 所有会话所有表最后一个自增ID 2.IDENT_CURRENT('表名') 所有会话当前表的自增ID 3.SCOPE_IDENTITY() 当前会话所有表最后一个自 ...
- [转]GO err is shadowed during return
1 前言 有时候编译Go项目会出现GO err is shadowed during return的问题,是因为作用域导致变量重名,return时不是你预期的变量导致的. 2 样例 这里先复现问题,然 ...
- Android应用市场的帮助类
写了一个Android应用市场的帮助类,如下: public class MarketUtils { public static final String MARKET_DATA = "ma ...
- Android Wear 2.0 AlarmManager 后台定时任务
以前在Android 4.0时,alarmManager 没什么问题.后来android为了优化系统耗电情况,引入了doze模式,参见此页 https://developer.android.com/ ...
- 关于el-upload上传
<el-upload class="edit-input-upload" :action="config.baseUrl + '/joinus/candidate/ ...
- 【JS】VUE学习
VUE的全家桶:vue-cli,vue-router,vue-resource,vuex 环境搭建:https://www.jianshu.com/p/32beaca25c0d 先码在这儿吧. htt ...
- Docker----在Docker中部署Asp.net core2.1以及修改发布
本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序,以及修改系统之后,发布更新.本文章采用自定义的Docker文件 系统要求: 1.服务器或本地已经安装docker 一.创建一 ...
- 《剑指offer》两个链表中的第一个公共节点
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:
- windows 上传文件到 Linux 服务器
方法一: pscp E:\javaWP\new11111.txt username@130.75.7.156:/home/