【六】集合

【集合】常用的方法有ArrayList集合类、Queue集合类、Stack集合类、Hashtable集合类、SortedList集合类
集合类的元素类型是object,会有装箱和拆箱的过程
集合类位于System.Collections命名空间,所以需要加
using System.Collections;

ArrayList集合类用法示例如下:
using System;
using System.Collections;

ArrayList numbers new ArrayList();

//填充ArrayList,number就是循环变量
foreach(int number in int[12]={10,9,8,7,7,6,5,10,4,3,2,1})
{
numbers.Add(number);
}
//在列表倒数第二位的位置插入一个元素,最后一个元素自动下移一个位置
//Insert方法的第一个参数时要插入的位置,第二个元素是要插入的值
numbera.Insert(numbers.Count-1,99);

//移除值是7的第一个元素
numbers.Remove(7);

//移除当前的第7个元素
numbers.RemoveAt(6);
//for 循环遍历
for (int i = 0;i<numbers.Count;i++)
{
int number = (int)numbers[i];//注意要强制类型转换
Console.WriteLine(number);
}
//foreach循环遍历
foreach(int number in numbers)//不需要强制类型转换
{
Console.WriteLine(number);
}

Queue集合类numbers实现先入先出(first-in,first-out,FIFO)机制
Queue numbers = new Queue();
numbers.Enqueue(unmber);//把number加入到尾部,即入列
numbers.Dequeue();//这是队首的值,并删掉这个值,可以复制给其他变量
int number = (int)numbers.Dequeue();//复制的时候记得强制类型转换

Stack集合类numbers实现一个后入先出(list-in,first-out,LIFO)机制
Stack numbers = new Stack();
number.Push(number);//把number入栈,在顶部
int number = (int)number.Pop();//从顶部开始取出一个并删除该元素

Hashtable集合类,在其他语言中通常被称为关联数组。哈希表类提供了键值对的功能
key/valued对可以理解为数组或者ArrayList类型提供了用整数索引元素的功能
而哈希表是用一个不是int的其他类型来作为索引,比如string,double或者Time等
即形成了一个key对应一个value的键值对。
哈希表当然不能包含重复的key。
Hashtable ages = new Hashtable();

ages["John"] = 44;
ages["Li"] = 23;
ages["James"] = 17;

foreach(DictionaryEntry element in ages)
{
string name = (string)element.Key;
int age = (int)element.Value;
Console.WriteLine("Name: {0} , Age: {1}",name,age);
}

ps:
一些哈希表的用法
// 创建一个Hashtable实例
Hashtable ht=new Hashtable();

// 添加keyvalue键值对
ht.Add("A","1");
ht.Add("B","2");
ht.Add("C","3");
ht.Add("D","4");

// 遍历哈希表
foreach (DictionaryEntry de in ht)
{
Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);
}

// 哈希表排序
ArrayList akeys=new ArrayList(ht.Keys);
akeys.Sort();
foreach (string skey in akeys)
{
Console.WriteLine("{0, -15} {1, -15}", skey, ht[skey]);

}

// 判断哈希表是否包含特定键,其返回值为true或false
if (ht.Contains("A"))
Console.WriteLine(ht["A"]);

// 给对应的键赋值
ht["A"] ="你好";

// 移除一个keyvalue键值对
ht.Remove("C");

// 遍历哈希表
foreach (DictionaryEntry de in ht)
{
Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);
}

// 移除所有元素
ht.Clear();

// 此处将不会有任何输出
Console.WriteLine(ht["A"]);
Console.ReadKey();

SortedList集合类与Hashtable类非常的相似,区别在于就如同名字里这样,SortedList是排序好的。
在一个SortedList内部的键值对,都是按照key值排序好的。

集合初始化器
ArrayList number = new ArrayList(){10,9,8,7,6,5};
Hashtable age = new Hashtable(){{"John",44},{"Li",23},{"James",17}};
//这个写法相当于Add,可以用Add的可以用,但是Stack和Queue不可以

时间: 2024-10-03 21:53:34

【六】集合的相关文章

Java基础学习笔记十六 集合框架(二)

List List接口的特点: 它是一个元素存取有序的集合.例如,存元素的顺序是11.22.33.那么集合中,元素的存储就是按照11.22.33的顺序完成的. 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理). 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素. List接口的常用子类有: ArrayList集合 LinkedList集合 List接口的特有方法(带索引的方法)1.增加元素方法 add(Object e):向集合末尾

JMeter(六)--集合点

JMeter也有像LR中的集合点,本篇就来介绍下JMeter的集合点如何去实现. JMeter里面的集合点通过添加定时器来完成. 注意:集合点的位置一定要在Sample之前. 集合点:简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点,拿那个用户和密码的地方,每到输入用户名和密码登录的地方,所有的虚拟用户都相互之间等一等,然后,一起访问. 1.接着之前创建的脚本,右键点击 线程组---->定时器-

Foundation框架-集合

一.基本概念 OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等. 二.数组 1.NSArray,不可变数组. 2.可以存放多个对象. 3.实例化的时候以nil表示结束. 4.通过下标索引对象. 5.NSArray无法添加.删除.修改元素. 1 /* 2 1.NSArray的创建 3 */ 4 NSA

【由浅入深理解java集合】(五)——集合 Map

前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍Map接口下的两个重要的集合实现类HashMap,TreeMap.关于Map的一些通用介绍,可以参考第一篇文章.由于Map与List.Set集合的某些特性有重合,因此观看本篇文章的会参考到之前的一些内容,最下方有链接.如果已经有这方面的基础,那么对Map的学习将会事半功倍. HashMap HashMap 是一个散列表,它存储的内容是键值对(key-value)映射. 既然要介绍HashMap,那么就顺带介绍HashTable

第二篇:python基础之数据类型与变量

数据类型 什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示 名字:德玛西亚------------>字符串 钱:10000   ------------>数字 等级:15    ------------>数字 装备:鞋子,日炎斗篷,兰顿之兆---->列表 除此之外还有很多其他数据,处理不同的数据就需要定义不同的数据类型 基本数据类型: 一.数字(包括:整型,长整

我们复习.Net的这些日子里

今天是我们复习前面学习的第三天,也是在今天我们结束了复习.之前上学时间感觉知识全是生僻的,在生活中很少用到,因此喜欢重复的记忆,而现在学习的知识全是现在乃至未来,将是每天我们使用的,所以就感觉没必要重复记忆啦,只要我记得知识点的存在然后会想起来具体的内容的,可是今天的复习我发现这样的做法还是不对的,也可能只是刚开始啦,太多东西都是硬性的,因此我想通过这篇文章来重新捡起来我忘记的,嘿嘿.下面就来说下具体容易忘记的和做起来题还是比较生硬的吧. 一.构造函数 构造函数方法名和类名一样,没有返回值,连v

python_DAY02

一  数字 1.整型int 作用:年纪,等级,身份证号,qq号等整型数字相关 定义: age = 10 #本质 age = int(10) 2.浮点型float 作用:薪资.身高.体重.体质参数等浮点数相关 salary = 11.2 #本质 salary =float(11.2) 二  字符串'' 作用:名字.性别.国籍.地址等描述信息 定义:在单引号/双引号/三引号内,由一串字符组成 例子:name = 'Jose' 1.索引取值(正反取值) #!/usr/bin/env python#co

python3基础二——基本的数据类型三

一.字符串str 1.创建字符串,为变量分配一个值 1 word='字符串' 2 sentence="字符串\n" #python中单引号和双引号使用完全相同 3 paragraph="""这是一个段落 4 可以有多行组成""" #使用三引号('''或""")可以指定一个多行字符串 5 print(word,sentence,paragraph) 6 -----------------------

再看Java之温故知新(体系篇)

一 数据类型 1.1 8种基本数据类型 1.2 引用数据类型 1.3 java内存机制 1.3.1 寄存器 1.3.2 栈 1.3.3 堆 1.3.4. 静态区/方法区 1.3.5. 运行时常量池(Runtime Constant Pool) 1.3.6 直接内存(Direct Memory) 二:面向对象思想 2.1封装 2.2 继承 2.3 多态 2.3.1 方法重载(Overloading) 2.3.2 方法覆盖(Overriding) 2.4 抽象 2.4.1 抽象类 2.4.2 接口

Python语言基础知识的易错点和易遗漏点

一.number型数据有:int  bool  float complex(复数) 容器型数据: tuple list dict  str set 一.三引号 可以支持多行输出不用换行符 二.r“字符串内容” 可以将特殊字符原样输出,而不用转义,应用场景是文件的路径和用户输入 eg:r“/xammp/MySQL/bin” 三.字符串(即可看做number型又可看做容器型) str有序(可用下标获取),不能改变 四.元组的运算符 “   ,”    元组中只有一个元素时要加逗号,否则类型为该元素类