学习笔记之——Iterator 容器与容器遍历

本文介绍了容器的概念及其基本操作,探讨了如何通过数组和链表模拟容器,并详细讲解了容器的遍历方法,特别是Iterator接口的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[color=red]容器:[/color]就是能够容纳其他元素这样的对象叫着容器,也就是说:容器也是一个对象

我们想写一个容器的话(可以用数组或者链表来模拟一个容器),它应该具备一个add方法,
用数组模拟容器和数组直接装东西相比, 好处就是不用在考虑数组边界的问题了可以动态增长,想往里头装东西直接装就是了 想知道装多少,调它的size()方法就行
如果我不想用Array这个容器来装东西了 我想用另外一个容器,这个容器的底层实现用链表
链表: 链表里面装的是一个一个的节点,
每个节点里面装的是两部分内容(数据本身, 指向下一个节点的一个引用)
LinkList里面装的是一大堆的Node 写一个Node数组? 千万别 记得开始的节点 顺着引用就可以找到最后的节点

考虑容器的可替换性: 把两个容器对外公开的方法统一起来 比如add size
Iterator iterator()
写一个接口 里面有那两个方法的定义 面向接口编程 针对Collection进行编程 方法具体的实现不去管它

对于容器经常使用的方法就是[size=x-large]遍历[/size],对于[size=x-large]遍历[/size]的方式如果不能够统一的话,那针对接口编程就是无意义(ArrayList(循环) 和LinkList(不断的next)的遍历方式不同)
每一种容器都有一个自己的遍历方式,而这个遍历方式我要想方设法的统一起来,由于底层的实现方式不同,所以只能用一种接口的方式给统一起来 Iterator
[color=red]Iterator[/color]接口里面定义这两个方法Object next();boolean hasNext();
有了这个接口以后,这个接口交给我们容器类的对象去实现
我要求任何一个容器都必须给我一个实现了这个[color=darkred]接口的类的对象[/color]
[color=red]public Iterator iterator() {
return new ArrayListIterator();
}
private class ArrayListIterator implements Iterator{}[/color]这类里面实现了Interator接口的方法 作为实现了Interator类的对象给返回过去

这样我们遍历容器的时候[color=red]Iterator it = c.iterator();[/color] 可以用调用[color=blue]Iterator[/color]方法用返回值[size=large]it[/size]来遍历(返回值[size=large]it[/size] 是一个[color=darkred]实现了[color=blue]Interator[/color]接口的对象[/color] 有遍历所以容器共有的方法).

[color=violet]Iterator it = c.iterator();
while(it.hasNext()) {
Object o = it.next();
System.out.print(o + " ");
}[/color]
内容概要:Rust是一种由Mozilla研究院开发的现代系统编程语言,专注于安全、发和性能。其设计哲学是“零成本抽象”,即在不影响性能的前提下提供高级抽象。Rust通过所有权系统确保内存安全,避免了垃圾回收的需求,有效防止了悬垂指针、数据竞争和无效内存访问等问题。它提供了强大的发原语,如线程、通道和原子操作,使编程更加简单和安全。此外,Rust编译为机器码,性能接近C/C++,且支持多种操作系统和架构,包括Windows、Linux、macOS以及嵌入式系统。Rust还拥有活跃的社区和丰富的生态系统,提供了大量涵盖多个领域的库和工具。Rust适用于高性能和安全性的系统级应用,如操作系统、数据库、网络服务器和嵌入式系统,同时也被广泛应用于WebAssembly、区块链和人工智能等领域。; 适合人群:对系统编程感兴趣,尤其是希望在保证性能的同时提升代码安全性的开发者。; 使用场景及目标:①需要开发高性能、安全的系统级应用,如操作系统、数据库、网络服务器等;②希望深入理解内存管理和编程的最佳实践;③探索WebAssembly、区块链和人工智能等新兴技术领域。; 阅读建议:Rust不仅适合有经验的系统程序员,也适合希望通过学习现代编程语言提升技能的新手。官方教程《The Rust Programming Language》、实践指南《Rust by Example》和练习项目《Rustlings》都是很好的学习资源,建议结合这些资源进行实践和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值