c# 数据结构 ArrayList
数据结构
描述数据之间的关系
行为:添加数据,删除数据,插入数据,查找数据,修改数据
追加数据:向这个结构的末尾添加一个数据
删除数据:在这个结构中删除你指定的数据
插入数据:向这个结构中某一个位置插入你指定的数据
查找数据:可以查找并访问到该数据
修改数据:可以对该结构指定的数据进行重新赋值
线性,链式,树状,图形,散列
链式:是非连续的内存空间,是每个数据分成三部分 头 数据 尾
每个数据的尾部链接下一个数据的头部
所以在内存不是连续的空间,而是一个一个的空间,通过头尾地址
联系在一起
集合
Collection是C#写好的数据结构类库
ArrayList,HashTable,Stack,Queue
如果你要使用这些数据结构类的模板,要先引用System.Collection
就可以通过类名去实例化它的对象
ArrayList
是封装过后的数组,里面的元素容器为object类型
这样ArrayList就适用于所有的数据类型
因为object类型是所有类的父类,又因为里氏转化原则,父类可以
装载子类,所以ArrayList可以装载所有数据类型
属性:
Count:记录我当前拥有多少个元素
Capacity:记录我当前可以包含多少个元素
方法:
添加 .Add(object value)
把当前这个对象添加到数组中
删除 .Remove(object value)
查询此元素,并移除第一个匹配的元素项
. RemoveAt(int index)
根据下标号移除该元素
插入 .Insert(int index,Object value)
把对应对象插入到对应的下标
访问/修改:通过索引器下标号
排序:.Sort();
反转: .Reverse();
检测是否包含: .Contains(object value)
检测该集合是否包含该元素,如果包含返回true,不包含返回false
查找索引:.IndexOf(object value)
找到第一个匹配该元素的下标号并返回
如果没找到,则返回-1
c# 数据结构 ArrayList的更多相关文章
- Java数据结构ArrayList
Java数据结构ArrayList /** * <html> * <body> * <P> Copyright JasonInternational</p&g ...
- Java数据结构-ArrayList最细致的解析笔记
ArrayList是一个类,这个类有一个数组参数elementData,ArrayList集合中的元素正是保存在这个数组中,它继承了数组查询的高性能,参考第3篇.ArrayList还封装了很多方法,便 ...
- java容器的数据结构-ArrayList,LinkList,HashMap
ArrayList: 初始容量为10,底层实现是一个数组,Object[] elementData 自动扩容机制,当添加一个元素时,数组长度超过了elementData.leng,则会按照1.5倍进行 ...
- JAVA数据结构--ArrayList动态数组
在计算机科学中,动态数组,可扩展数组,可调整数组,动态表,可变数组或数组列表是一种随机存取可变大小列表数据结构,允许添加或删除元素.它提供许多现代主流编程语言的标准库.动态数组克服了静态数组的限制,静 ...
- [数据结构] - ArrayList探究
一 概述 ArrayList可以理解为动态数组,与java的数组相比,它的容量能动态曾长,ArrayList是List接口的可变数组的实现,允许包括null值在内的所有元素.除了实现List接口外,此 ...
- 数据结构 - ArrayList
简介 ArrayList是一个动态数组.ArrayList几乎拥有数组所有优点,例如元素有序,索引访问等:并且一般情况下它还不会越界,添加元素时它能动态扩容.平时工作中ArrayList被我们广泛应用 ...
- 数据结构——ArrayList的源码分析(你所有的疑问,都会被解答)
一.首先来看一下ArrayList的类图: 1,实现了RandomAccess接口,可以达到随机访问的效果. 2,实现了Serializable接口,可以用来序列化或者反序列化. 3,实现了List接 ...
- Java 的 ArrayList 的底层数据结构
1. 数据结构--ArrayList源码摘要 ublic class ArrayList<E> extends AbstractList<E> implements List& ...
- Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解Arra ...
随机推荐
- netty源码分析之二:accept请求
我在前面说过了server的启动,差不多可以看到netty nio主要的东西包括了:nioEventLoop,nioMessageUnsafe,channelPipeline,channelHandl ...
- js获取html元素在可视区域的位置
1)html节点在可视区域的位置 obj.getBoundingClientRect().top obj.getBoundingClientRect().left 2) 获取鼠标按下的位置 event ...
- JavaScript HTML DOM - 改变 CSS
HTML DOM 允许 JavaScript 改变 HTML 元素的样式. 改变 HTML 样式 如需改变 HTML 元素的样式,请使用这个语法: document.getElementById(id ...
- Java启动工程时,加载固定数据到Map中(不用每次访问数据库)
如下:启动工程时,加载配置文件的用户名和密码到map中, 通过getKeyByValue()获取即可 import java.util.HashMap; import java.util.Map; i ...
- IIS SSL证书 指定的登录会话不存在,可能已被终止 HRESULT:0x80070520
指定的登录会话不存在,可能已被终止 HRESULT:0x80070520 IIS导入证书时,选择”允许导出此证书” 服务器证书名称,在mmc控制台中个人证书中命名
- 在云服务器跑Python程序
最近在鼓弄这TensorFlow的模型,有些模型实在是太大了,CPU占用率100%不说,还一跑起来就跑个大半天,严重影响了学习的进度,所以由于手里刚有一个不大使用的云服务器,配置虽然不咋地,至少还能跑 ...
- day 17 项目开发常用模块
---恢复内容开始--- time模块 import time print(time.time()) # 时间戳: print(time.strftime("%Y-%m-%d %X" ...
- JAVA8之函数式接口
由于JDK8已经发布一段时间了,也开始逐渐稳定,未来使用JAVA语言开发的系统会逐渐升级到JDK8,因为为了以后工作需要,我们有必要了解JAVA8的一些新的特性.JAVA8相对JAVA7最重要的一个突 ...
- CentOS版Linux系统上运行ASP.NET应用
一.安装: 1. 安装Apache Http Server yum install httpd2. 安装Mono yum install mono3. 安装Mono插件,用来处理ASP.NET请求 y ...
- [转]Spark学习之路 (三)Spark之RDD
Spark学习之路 (三)Spark之RDD https://www.cnblogs.com/qingyunzong/p/8899715.html 目录 一.RDD的概述 1.1 什么是RDD? ...