本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解迭代器模式的动机,掌握该模式的结构;
2、能够利用迭代器模式解决实际问题。
[实验任务一]:JAVA和C++常见数据结构迭代器的使用
信1305班共44名同学,每名同学都有姓名,学号和年龄等属性,分别使用JAVA内置迭代器和C++中标准模板库(STL)实现对同学信息的遍历,要求按照学号从小到大和从大到小两种次序输出学生信息。
实验要求:
1.
搜集并掌握JAVA和C++中常见的数据结构和迭代器的使用方法,例如,vector, list, map和set等;
Java:
1. ArrayList:
在Java中,ArrayList 是一个动态数组实现的类,可以用于存储对象。
import java.util.ArrayList;
ArrayList<Integer> arrayList =
new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
// 遍历ArrayList
for (int i : arrayList) {
System.out.println(i);
}
2. LinkedList:
LinkedList 是一个双向链表实现的类,适用于插入和删除操作频繁的情况。
import java.util.LinkedList;
LinkedList<String> linkedList =
new LinkedList<>();
linkedList.add("One");
linkedList.add("Two");
linkedList.add("Three");
// 遍历LinkedList
for (String s : linkedList) {
System.out.println(s);
}
3. HashMap:
HashMap 是一个键值对存储的无序集合。
import java.util.HashMap;
HashMap<String, Integer> hashMap
= new HashMap<>();
hashMap.put("One", 1);
hashMap.put("Two", 2);
hashMap.put("Three", 3);
// 遍历HashMap
for (String key : hashMap.keySet()) {
System.out.println(key + ": " + hashMap.get(key));
}
4. HashSet:
HashSet 是一个无序且不允许重复的集合。
import java.util.HashSet;
HashSet<String> hashSet = new
HashSet<>();
hashSet.add("One");
hashSet.add("Two");
hashSet.add("Three");
// 遍历HashSet
for (String s : hashSet) {
System.out.println(s);
}
C++:
1. vector:
在C++中,std::vector 是一个动态数组实现的类。
#include <vector>
std::vector<int> vec = {1, 2,
3};
// 遍历vector
for (int i : vec) {
std::cout << i << std::endl;
}
2. list:
std::list 是一个双向链表实现的类。
#include <list>
std::list<std::string> myList =
{"One", "Two", "Three"};
// 遍历list
for (const std::string& s :
myList) {
std::cout << s << std::endl;
}
3. map:
std::map 是一个键值对存储的有序集合。
#include <map>
std::map<std::string, int>
myMap;
myMap["One"] = 1;
myMap["Two"] = 2;
myMap["Three"] = 3;
// 遍历map
for (const auto& pair : myMap) {
std::cout << pair.first << ": " <<
pair.second << std::endl;
}
4. set:
std::set 是一个有序且不允许重复的集合。
#include <set>
std::set<std::string> mySet =
{"One", "Two", "Three"};
// 遍历set
for (const std::string& s : mySet)
{
std::cout << s << std::endl;
}
2. 提交源代码;
3. 注意编程规范。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!