集合与ArrayList+哈希表

2024-08-28 23:28
文章标签 哈希 arraylist 集合

本文主要是介绍集合与ArrayList+哈希表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据结构

描述数据之间的关系。

行为:添加数据,删除数据,插入数据,查找数据,修改数据。

添加数据:向这个结构的末尾添加一个数据。

删除数据:向这个结构中删除你指定的数据。

插入数据:向这个结构中某个位置插入你指定的数据。

查找数据:可以查找并访问到该数据。

修改数据:可以对该结构指定的数据进行重新赋值。

线性,链式,树状,图形,散列等

链式:是非连续的内存空间,每个数据分成三个部分,头,数据,尾,每个数据的尾部连接下一个数据的头部。所以其在内存中不是连续的空间,而是一个一个的空间,通过头尾地址联系在一起。

集合

Collection是C#写好的数据结构类库

ArrayList,HashTable,Stack,Queue

若要使用这些数据结构类的模板,要先引用System.Collection库

之后就可以通过类名去实例化它的对象。

ArrayList

是封装过后的数组,里面的元素容器为object类型,这样ArrayList就适用于所有的数据类型,

因为object类是所有类的基类,又有里氏转换原则,父类可以转载子类。

属性

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。

ArrayList应用示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;  //用到ArrayList所需要引用的程序集namespace 数据结构
{class Program{static void Main(string[] args){ArrayList arrayList = new ArrayList();for(int i = 0; i < 10; i++){arrayList.Add(i);}for(int i = 0; i < arrayList.Count; i++){Console.WriteLine(arrayList[i]);}arrayList.RemoveAt(8);Console.WriteLine("______________________________");for(int i = 0; i < arrayList.Count; i++){Console.WriteLine(arrayList[i]);}}}
}

运行结果:

HashTable 

也是System.Collection集合下的数据结构类,他储存的也是Object类型的对象,但是他在内存中是散列排布的,因为这个特性,非常适合存储大量的数据。

在HashTable中一个键对应一个值,一个值可以对应多个键。

HashTable存储的是<键,值>对

HashTable table=new HashTable();

属性

Count:HashTable包含的键值对的数目

Keys:HashTable中键的集合;

Values:HashTable中值的集合

方法

增删改查

Add(key,value) 在哈希表中添加一对键值对

Remove(key) 删除键值

因为一个值有可能对应多个键,这样就不能把整个键值对删除掉,只要没有键指向这个值,就会被自动释放掉,所以只需要删除键值就OK了。

Contains(key) 检测是否包含此键值对

ContainsKey(key) 检测是否包含这个键

ContainsValue(value)  检测是否包含这个值

访问:索引器[键]

哈希表示例:

    class Program{static void Main(string[] args){Hashtable table= new Hashtable();//假设有一把武器叫血刃,这把血刃的id为123//将血刃放进我的武器目录里table.Add("123", "血刃");Console.WriteLine(table["123"]);}}

运行结果:

该系列专栏为网课课程笔记,仅用于学习参考。 

这篇关于集合与ArrayList+哈希表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116191

相关文章

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动

解决java.util.RandomAccessSubList cannot be cast to java.util.ArrayList错误的问题

《解决java.util.RandomAccessSubListcannotbecasttojava.util.ArrayList错误的问题》当你尝试将RandomAccessSubList... 目录Java.util.RandomAccessSubList cannot be cast to java.

Java 的ArrayList集合底层实现与最佳实践

《Java的ArrayList集合底层实现与最佳实践》本文主要介绍了Java的ArrayList集合类的核心概念、底层实现、关键成员变量、初始化机制、容量演变、扩容机制、性能分析、核心方法源码解析、... 目录1. 核心概念与底层实现1.1 ArrayList 的本质1.1.1 底层数据结构JDK 1.7

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长