Java 实验8 集合类

(一)实验目的

1、掌握JAVA集合类中的Collection的特点及其应用情形;

3、掌握Collection、熟悉集合的特点及应用。

(二)实验内容和步骤

1、仿照课堂练习的MyStack示例,使用LinkedList集合类实现一个先进先出的队列数据结构,可以往该结构中压入数据push()以及弹出数据pop(),并遵循先进入先出队的规则。创建该结构,并使用该结构,调用其方法,实现数据存入和取出并显示。

package CollectionClassPractice;import java.util.LinkedList;public class MyStackClass {public static void main(String[] args) {LinkedList<Integer> queue = new LinkedList<Integer>();//存入数据System.out.println("队列元素:");push(queue, 1);  push(queue, 2);   push(queue, 3);   push(queue, 4);  push(queue, 5);for(int i=0; i<queue.size(); i++){System.out.print(queue.get(i));System.out.print(' ');}System.out.print('\n' + "取出队头元素:");System.out.print(pop(queue));  System.out.print(' ');System.out.print(pop(queue));}public static int pop(LinkedList<Integer> a){int x = a.getFirst();a.removeFirst();return x;}public static void push(LinkedList a, int x){a.addLast(x);}
}

【运行结果】

2、 集合的嵌套遍历:
现在计算机科学与技术系2022届共有5个班级,2个外包班,3个应用班,每个班都有不同的学生,外包1班有5个学生,计算机应用1班有3个学生,计算机应用2班有4个学生.遍历打印年级学生信息。

分析:用集合去存储并且遍历每个学生。最终选择ArrayList去存储

package CollectionClassPractice;import java.util.ArrayList;class Student
{String name;int age;public Student(String name, int age){this.name = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}
}public class StudentClassNestedTraversal {public static void main(String[] args) {ArrayList<Student> students = new ArrayList<Student>();students.add(new Student("外包1班学生1", 18));		students.add(new Student("外包1班学生2", 12));students.add(new Student("外包1班学生3", 12));		students.add(new Student("外包1班学生4", 12));students.add(new Student("外包1班学生5", 12));students.add(new Student("计算机应用1班学生1", 20));		students.add(new Student("计算机应用1班学生2", 20));students.add(new Student("计算机应用1班学生3", 20));students.add(new Student("计算机应用2班学生1", 21));		students.add(new Student("计算机应用2班学生2", 21));students.add(new Student("计算机应用2班学生3", 21));		students.add(new Student("计算机应用2班学生4", 21));for(Student s: students){System.out.println("学生姓名:"+s.getName()+" 年龄:"+s.getAge());}}
}

【运行结果】

3、键盘录入多个整型数据,以-1结束,按格式输出排序后的数据,输入格式要求如下:以逗号分隔整数,如:4752344254. 输出排序后的结果为:4, 42, 54, 75, 234 。

  1. 用正则表达式分割字符串,得到字符串数组: split()方法
  2. 转换为整型集合:for循环将字符串数组中的元素遍历取出,加入到集合中
  3. 使用Collections工具类对集合进行排序
  4. 输出排序后的集合元素
package CollectionClassPractice;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;//4,75,234,42,54,-1public class Exercise3 {public static void main(String[] args) {String s = "4,75,234,42,54,-1";String a[] = s.split(",");List<Integer> list = new ArrayList<Integer>();for(String temp : a){if(temp.equals("-1"))break;Integer i = Integer.valueOf(temp);list.add(i);}Collections.sort(list);for(Integer temp : list){System.out.println(temp);}}
}

【运行结果】

4、TreeSet集合存储自定义对象并遍历:如果对象的成员变量值相同即为同一个对象,按照年龄进行从大到小进行排序。分别用自然排序,实现接口Comparator类,内部类三种方法实现

package Tree3KindCompare;import java.util.Comparator;
import java.util.TreeSet;class Student implements Comparable<Student> { //自然排序public String name;public int age;public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}public int compareTo(Student o) { //自然排序return this.age - o.age;}public String toString() { //用于输出,不写就只有地址return "Student{" + "name='" + name + '\'' + ", age=" + age + '}';}
}//实现接口Comparator类
class AgeCompare implements Comparator<Student>{public int compare(Student o1, Student o2) {// TODO Auto-generated method stubreturn o1.getAge() - o2.getAge();}}public class TreesetDemo {public static void main(String[] args) {//自然排序TreeSet<Student> tree = new TreeSet<Student>();tree.add(new Student("张三", 20));tree.add(new Student("赵六", 23));tree.add(new Student("李四", 21));tree.add(new Student("王五", 22));System.out.println(tree);System.out.println("------------------------------------");//实现内部类TreeSet<Student> tree1 = new TreeSet<Student>(new Comparator<Student>() {public int compare(Student o1, Student o2) {// TODO Auto-generated method stubreturn o1.getAge() - o2.getAge();}});tree1.add(new Student("张三", 20));tree1.add(new Student("赵六", 23));tree1.add(new Student("李四", 21));tree1.add(new Student("王五", 22));System.out.println(tree1);System.out.println("------------------------------------");//实现接口Comparator类TreeSet<Student> tree2 = new TreeSet<Student>(new AgeCompare()); //自定义AgeComparetree2.add(new Student("张三", 20));tree2.add(new Student("赵六", 23));tree2.add(new Student("李四", 21));tree2.add(new Student("王五", 22));System.out.println(tree2);}
}

【运行结果】

5"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)

package MapUsed;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class MapDemo {public static void main(String[] args) {String s = "aababcabcdabcde";Map<Character, Integer> mp = new HashMap<Character, Integer>();// 遍历字符串s中的每个字符for (char c : s.toCharArray()) {// put添加数据。如果字符c已经在map中,则将其计数加1;否则将其添加到map中并设置计数为1mp.put(c, mp.getOrDefault(c, 0) + 1); }// 遍历map中的每个条目Set<Character> keys = mp.keySet();for(char key : keys){int value = mp.get(key);System.out.println(key + "(" + value + ")");}}
}

【运行结果】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/24116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索多头混合专家(MH-MoE)模型的先进架构

在深度学习领域&#xff0c;大型模型如大型语言模型&#xff08;LLMs&#xff09;和大型多模态模型&#xff08;LMMs&#xff09;因其在各个领域的有效性而受到广泛关注。然而&#xff0c;这些模型在训练和推理时面临着巨大的计算成本。为了解决这一问题&#xff0c;研究者们提…

多分类混淆矩阵详解

⭐️ 前言 在机器学习和数据科学中&#xff0c;混淆矩阵&#xff08;Confusion Matrix&#xff09;是一个重要的工具&#xff0c;用于评估分类模型的性能。特别是在多分类问题中&#xff0c;混淆矩阵能够清晰地展示模型在每个类别上的预测结果。以下是对多分类混淆矩阵的详细解…

IDEA下项目发送到Gitee

一、首先在Gitee创建一个仓库&#xff08;什么都不选&#xff0c;这是最简单的方式&#xff0c;否则需要 pull push等一些操作&#xff0c;我嫌麻烦&#xff09; 二、按图点击&#xff08;创建存储区&#xff0c;选择你要上传的项目&#xff09; 三、按图点击后正常文件名会变绿…

python中关于函数的两种链式调用

函数之间的嵌套调用之函数的返回值就是另一个函数的参数 用一个函数的返回值作为另一个函数的参数。 如上图所示&#xff0c;将is0dd&#xff08;10&#xff09;的结果交给print函数来执行。 如上图所示&#xff0c;也是一个链式调用的案例&#xff0c;先将add&#xff08;x&a…

gitlab之cicd的gitlab-runner cicd实践-rpm离线安装

目录 概述资源官方资源离线资源 操作环境验证gitlab-runner安装注意事项重启向gitlab注册CICD流程测试 概述 gitlab此文使用rpm离线安装的方式&#xff0c;使用 gitlab-runner dockerfile构建运行环境&#xff1a; 如有兴趣可以参考这篇文章   gitlab选择 docker-compose 执行…

关于JavaScript技术的基础内容汇总

目录 JavaScript 基础知识1. JavaScript 基本语法2. 变量和常量3. 数据类型4. 运算符5. 控制结构6. 函数7. 对象8. 数组9. 事件处理10. DOM 操作 JavaScript 基础知识 学习 JavaScript&#xff08;简称 JS&#xff09;是前端开发的重要组成部分&#xff0c;它是一种动态的、弱…

GIGE 协议摘录 —— GVCP 协议(二)

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 —— 设备发现&#xff08;一&#xff09; GIGE 协议摘录 —— GVCP 协议&#xff08;二&#xff09; GIGE 协议摘录 —— GVSP 协议&#xff08;三&#xff09; GIGE 协议摘录 —— 引导寄存器&#xff08;四&#xff09; GIGE 协议…

新品!和芯星通全系统全频高精度板卡UB9A0首发

6月6日&#xff0c;和芯星通发布了UB9A0全系统全频高精度GNSS板卡&#xff0c;主要应用于CORS站、便携基站、GNSS全球监测跟踪站等。延续了上一代产品高质量原始观测量的特点&#xff0c;UB9A0在性能和稳定性方面均表现出众。 UB9A0基于射频基带及高精度算法一体化的GNSS SoC芯…

新能源汽车内卷真相

导语&#xff1a;2025年&#xff0c;我国新能源汽车总产能预计可达3661万辆&#xff0c;如此产能如何消化&#xff1f; 文 | 胡安 “这样卷下去不是办法&#xff0c;企业目的是什么&#xff1f;是盈利&#xff0c;为国家作贡献&#xff0c;为社会作贡献。我们应该有大格局&…

问题:1、彩色餐巾可以渲染就餐气氛,下列说法错误的是 #知识分享#其他

问题&#xff1a;1、彩色餐巾可以渲染就餐气氛&#xff0c;下列说法错误的是 A&#xff0e;如艳红、大红餐巾给人以庄重热烈的感觉&#xff1b; B&#xff0e;橘黄、鹅黄色餐巾给人以高贵典雅的感觉&#xff1b; C&#xff0e;湖蓝色在夏天能给人以凉爽、舒适之感&#xff1…

大数据之HDFS磁盘扩容(linux磁盘扩容)

之所以扩容,是因为当前大数据平台已经接入了不同来源的数据,当执行mapreduce任务时,会发生磁盘爆满,导致hdfs爆红 具体扩容方案如下: 1、查看云磁盘分区情况 fdisk -l . 可以从图看出&#xff1a; /dev/vda 数据盘磁盘容量为21.5GB&#xff0c;包含/dev/vda1分区 /dev/vdb 数…

【大模型】Ollama+open-webui/Anything LLM部署本地大模型构建RAG个人知识库教程(Mac)

目录 一、Ollama是什么&#xff1f; 二、如何在Mac上安装Ollama 1. 准备工作 2. 下载并安装Ollama 3. 运行Ollama 4. 安装和配置大型语言模型 5. 使用Ollama 三、安装open-webui 1. 准备工作 2. Open WebUI ⭐的主要特点 3. Docker安装OpenWebUI&#xff0c;拉去太慢…

大学信息资源管理试题及答案,分享几个实用搜题和学习工具 #职场发展#微信

人工智能技术的发展正逐渐改变着我们的生活&#xff0c;学习如何运用这些技术将成为大学生的必备素养。 1.彩虹搜题 这是个微信公众号 算法持续优化&#xff0c;提升搜题效果。每一次搜索都更精准&#xff0c;答案更有价值。 下方附上一些测试的试题及答案 1、在SpringMVC配…

k8s-pod参数详解

目录 概述创建Pod编写一个简单的Pod添加常用参数为Pod的容器分配资源网络相关Pod健康检查启动探针存活探针就绪探针 作用整个Pod参数配置创建docker-registry 卷挂载 结束 概述 k8s中的pod参数详解。官方文档   版本 k8s 1.27.x 、busybox:stable-musl、nginx:stable-alpine3…

【RabbitMQ基础】-RabbitMQ:初识MQ[1]

简介 RabbitMQ &#xff08;高性能的异步通讯组件&#xff09; RabbitMQ是一个开源的消息队列中间件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;标准。它是一种可靠、可扩展、灵活和可插拔的解决方案&#xff0c;用于处理异步消息传递和事件驱动系统。…

《广告数据定量分析》读书笔记之统计原理2

3.相关分析&#xff1a;描述的是两个数值变量间关系的强度。&#xff08;两个数值型变量之间的关系&#xff09; &#xff08;1&#xff09;图表表示&#xff1a;散点图 &#xff08;2&#xff09;衡量关系强度指标&#xff1a;相关系数r。 &#xff08;r的取值为-1到 1&…

.net 下的身份认证与授权的实现

背景 任何一个系统&#xff0c;都需要对于底层访问的页面和接口进行安全的处理&#xff0c;其中核心就是认证和授权。 另外一个问题就是在实际编程过程中&#xff0c;我们的代码有不同的模式&#xff0c;不同的分层或者在不同的项目之中&#xff0c;如何在不同的地方取得用户…

Python画图(多图展示在一个平面)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

各平台对象存储

一、阿里云对象存储 官方文档&#xff1a;https://help.aliyun.com/zh/oss/getting-started/getting-started-with-oss?spma2c4g.11186623.0.0.299a646c6nWWcW 1.引入maven 官网&#xff1a;https://help.aliyun.com/zh/oss/developer-reference/java-installation?spma2c…

小白学linux | 使用正则表达式审计ssh登录ip地址

Ubuntu /var/log/auth.log记录了所有与身份验证相关的事件&#xff0c;包括SSH登录尝试 grep -i "failed password" /var/log/auth.log | \awk {if($11 ~/^[0-9]\.[0-9]\.[0-9]\.[0-9]$/)print $11 ; else print $13} | \uniq -c | sort -nr -k1 RedHat系发行版 /va…