首页 > 编程语言 >PTA-- 《面向对象程序设计》作业6--集合与容器

PTA-- 《面向对象程序设计》作业6--集合与容器

时间:2024-06-02 23:30:04浏览次数:16  
标签:Begin End -- 元素 PTA 面向对象 字符串 集合 hello

目录

6-1 tjrac - Java集合类之List的ArrayList之增删改查

 6-2 tjrac - Java集合类之Map的HashMap之常用方法的使用 

 6-3 tjrac - Java集合类之Set的HashSet之常用方法的使用


6-1 tjrac - Java集合类之List的ArrayList之增删改查

仔细阅读下面编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,创建 ArrayList 集合并使用它的增删改查方法,具体要求如下:

接收给定的一行字符串(如:32 rfsd fwq g3r3qt t3q4t。);
通过空格(一个)切割字符串;
创建一个 ArrayList 集合;
将切割后的字符串元素添加至集合中;
删除集合的第一个和最后一个元素;
添加两个字符串:hello,educoder 至集合中;
修改集合的第三个元素,改为:list;
打印集合。

裁判测试样例:

 

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 请在Begin-End间编写代码
        /********** Begin **********/
        // 第一步:接收给定的一行字符串

        // 第二步:切割字符串

        // 第三步:创建集合

        // 第四步:往集合中添加元素

        // 第五步:删除第一个元素和最后一个元素

        // 第六步:往集合中添加hello和educoder
        
        // 第七步:修改集合中第三个元素为list

        // 第八步:打印集合

        /********** End **********/
    }
}

测试样例:

32 rfsd fwq g3r3qt t3q4t qt ta

输出样例:

 [rfsd, fwq, list, t3q4t, qt, hello, educoder]

答案代码:

 // 请在Begin-End间编写代码
        /********** Begin **********/
        // 第一步:接收给定的一行字符串
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        // 第二步:切割字符串
        String[] a = str.split(" ");
        // 第三步:创建集合
        List<String> list = new ArrayList<>();
        // 第四步:往集合中添加元素
        for (int i = 0; i < a.length; i++) {
            list.add(a[i]);
        }
        // 第五步:删除第一个元素和最后一个元素
        list.remove(0);
        list.remove(list.size()-1);
        // 第六步:往集合中添加hello和educoder
        list.add("hello");
        list.add("educoder");
        // 第七步:修改集合中第三个元素为list
        list.set(2,"list");
        // 第八步:打印集合
        System.out.println(list);
        /********** End **********/

 6-2 tjrac - Java集合类之Map的HashMap之常用方法的使用 

仔细阅读下面编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,使用 HashMap 集合的常用方法完成所给要求,具体如下:

接收给定的一行字符串(如:红烧鱼:50,小炒牛肉:75,...);
切割字符串,把切割后的元素添加进 HashMap 集合中;
往集合中添加一道菜,菜名:lamb,价格:50;
输出所有菜名(不含价格);
删除红烧鱼和小炒牛肉这两道菜后输出集合长度;
打印集合。
注意:字符串中的逗号和分号都是中文符号。

裁判测试样例:

/*
仔细阅读给出的代码框架及注释,在 Begin-End 间编写程序代码,使用 HashMap 集合的常用方法完成所给要求,具体如下:
- 接收给定的一行字符串(如:红烧鱼:50,小炒牛肉:75,...);
- 切割字符串,把切割后的元素添加进 HashMap 集合中;
- 往集合中添加一道菜,菜名:lamb,价格:50;
- 输出所有菜名(不含价格);
- 删除红烧鱼和小炒牛肉这两道菜后输出集合长度;
- 打印集合。
注意:字符串中的逗号和分号都是中文符号。
*/

import java.util.*;
public class Main {
    public static void main(String[] args) {
        // 请在Begin-End间编写代码
        /********** Begin **********/
        // 第一步:接收给定字符串

        // 第二步:切割字符串

        // 第三步:创建 HashMap 集合,key为菜名,value为价格

        // 第四步:添加数据到集合中

        // 第五步:往集合中添加给定的一道菜

        // 第六步:输出所有菜名

        // 第七步:删除红烧鱼和小炒牛肉这两道菜后输出集合长度

        // 第八步:打印集合

        /********** End **********/
    }
}

 测试样例:

粉蒸肉:50,红烧鱼:50,小炒牛肉:75,手撕包菜:20,蒜蓉虾:100

输出样例:

 [手撕包菜, 蒜蓉虾, lamb, 小炒牛肉, 粉蒸肉, 红烧鱼]
4
{手撕包菜=20, 蒜蓉虾=100, lamb=50, 粉蒸肉=50}

答案代码:

// 请在Begin-End间编写代码
            /********** Begin **********/
            // 第一步:接收给定字符串
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
            // 第二步:切割字符串
        String[] a= str.split(",");
            // 第三步:创建 HashMap 集合,key为菜名,value为价格
        Map<String, String> map = new HashMap<>();
        // 第四步:添加数据到集合中
        for (String add : a){
            String[] a1 = add.split(":");
            map.put(a1[0],a1[1]);
        }
            // 第五步:往集合中添加给定的一道菜
        map.put("lamb","50");
            // 第六步:输出所有菜名
        System.out.println(map.keySet());
            // 第七步:删除红烧鱼和小炒牛肉这两道菜后输出集合长度
        map.remove("红烧鱼");
        map.remove("小炒牛肉");
        System.out.println(map.size());
            // 第八步:打印集合
        System.out.println(map);
            /********** End **********/

 6-3 tjrac - Java集合类之Set的HashSet之常用方法的使用

仔细阅读下面编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,使用 HashSet 的常用方法完成所给要求,具体如下:

接收给定的一行字符串(如:hello,hi,ask);
根据英文逗号切割字符串,把切割后的元素添加进 HashSet;
判断集合中元素个数,当个数大于 4,且集合中没有元素 hello 时,往集合中添加元素 hello,如果集合中已有元素 hello,请输出提示语句:“集合中已有该元素”,当个数小于等于 4 时,请输出提示语句:“元素个数小于4”;
打印集合

裁判测试样例:

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        // 请在Begin-End间编写代码
        /********** Begin **********/
        // 第一步:接收给定的字符串

        // 第二步:切割字符串

        // 第三步:创建集合

        // 第四步:将切割后的元素添加进集合

        // 第五步:判断集合中元素个数是否大于4

        // 第六步:当元素个数大于4,且元素中含有hello时,输出指定提示语

        // 第七步:当元素个数大于4,且元素中不含hello时,把hello添加进集合

        // 第八步:当元素个数小于4,输出指定提示语

        // 第九步:输出集合

        /********** End **********/
    }
}

测试样例:

 hello,hi,kiko,solo,so

输出样例:

集合中已有该元素
[kiko, hi, solo, hello, so] 

 答案代码:

// 请在Begin-End间编写代码
        /********** Begin **********/
        // 第一步:接收给定的字符串
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        // 第二步:切割字符串
        String[] a = str.split(",");
        // 第三步:创建集合
        Set<String> set = new HashSet<>();
        // 第四步:将切割后的元素添加进集合
        for (int i = 0; i < a.length; i++) {
            set.add(a[i]);
        }
        // 第五步:判断集合中元素个数是否大于4
        if (a.length > 4) {
            boolean temp = set.contains("hello");
            // 第六步:当元素个数大于4,且元素中含有hello时,输出指定提示语
            if (temp) {
                System.out.println("集合中已有该元素");
            }
            // 第七步:当元素个数大于4,且元素中不含hello时,把hello添加进集合
            else {
                set.add("hello");
            }
        }
            // 第八步:当元素个数小于4,输出指定提示语
            if(a.length<4) {
                System.out.println("元素个数小于4");
            }
            // 第九步:输出集合
        System.out.println(set);
            /********** End **********/

标签:Begin,End,--,元素,PTA,面向对象,字符串,集合,hello
From: https://blog.csdn.net/2301_76613040/article/details/139331300

相关文章

  • 微信小程序-声明和绑定事件
    一.概念小程序页面使用的数据在Page()方法里使用data对象进行声明定义定义好之后,使用{{}}进行绑定声明Page({data:{school:'未发之中',obj:{name:'dadada'},id:1,useChk:true}})绑定<!--使用双括号展示数据--><view>{{scho......
  • 深度学习知识与心得
    目录深度学习简介传统机器学习深度学习发展感知机前馈神经网络前馈神经网络(BP网络)深度学习框架讲解深度学习框架TensorFlow一个简单的线性函数拟合过程卷积神经网络CNN(计算机视觉)自然语言处理NLPWordEmbedding词向量词向量学习方法:LSA、PLSA词向量训练词向量......
  • SQLmap注入
    SQLmap注入sqlmap只是用来检测和利用sql注入点,并不能扫描出网站有哪些漏洞,使用前先使用扫描工具扫出sql注入点。sqlmap采用了五种独特的SQL注入技术。1.布尔盲注:可以根据返回页面判断条件真假的注入。2.时间盲注:不能根据返回页面的内容判断出任何信息,要用条件语句查询时间......
  • 基于STM32F103C8T6微控制器的物流信息检测系统
    摘要本论文设计并实现了一种基于STM32F103C8T6微控制器的物流信息检测系统。该系统旨在通过综合各种传感器模块实现对运输车环境及状态的实时监控,并通过4G网络将信息发送到手机端,以便用户进行远程管理和控制。首先,系统通过GPS模块获取运输车的位置信息,实现车辆定位和轨迹跟踪......
  • DVWA靶场---csrf遇到的问题解决方法
    1.解决low等级不携带cookie访问诈骗网站:设置---隐私与安全---浏览器隐私---增强型跟踪保护---自定义---cookie---跨站跟踪型cookie。2.解决medium等级referer显示不完整解决方法:在服务器的html上加一段:<metaname="referrer"content="no-referrer-when-downgrade">当从......
  • 里氏替换原则经典反例:正方形不是长方形
    里氏替换原则指出:“继承必须确保超类所拥有的性质在子类中仍然成立”,在程序中的表现就是某个接口能接受超类对象为参数,那么它也必须应该能接受子类对象为参数,且程序不会出现异常。也就是说子类对象应该能够替换掉超类对象,而程序的行为不会改变。最经典的用于说明里氏替换原......
  • Kruskal最小生成树
    Kruskal最小生成树Kruskal最小生成树是求解图G的最小生成树(最优树)T的算法。Kruskal算法是基于边来构造的算法,相对好理解。还有一个Prim算法是从点方面考虑的构建方式。对于图\(G(V,E)\),Kruskal算法的时间复杂度是\(O(|E|\cdot\alpha(V))\),其中α为Ackermann函数,其增长非......
  • 关于c++出现的易错问题
    比如我一个对象,经常操作用的指针ptr,原生指针比如ClassA*ca=;但是我要保存ca,在另一个地方操作,比如: cb=ca; 这样子是不行的,因为我要操作的是ca,而不是ca的值,为什么呢,因为ca代表这个对象,而&ca,代表的是ca的地址;我用cb可以动态的更换值,来改变不同ClassA对象;所以这里用了二级指针......
  • 【Python】生成html文档-使用dominate
    原文地址:https://www.cnblogs.com/kaerxifa/p/13035376.htmldominate简介dominate是一个使用优雅的DOMAPI创建和操作HTML文档的Python库。使用它能非常简洁地编写纯Python的HTML页面,这消除了学习另一种模板语言的需要,利用Python更强大的特性。 首先安装依赖:pipinstall......
  • [ Python ] 常用运算符对应的魔法方法
    https://www.cnblogs.com/yeungchie/Python中的运算符丰富多样,它们可以分为多个类别,包括算术运算符、比较运算符、逻辑运算符、位运算符、身份运算符、成员运算符等。每个运算符都有其对应的魔法方法(也称为特殊方法或dunder方法,即双下划线方法),这些方法在特定情况下会被Python调用......